본문 바로가기

3.1 Java_Backend46

[묘공단/spring] 3장 Spring boot 3 구조 포스팅 목차 (책의 목차와 다릅니다 개인적으로 공부한 내용입니다) 3장 3-1. 계층 3-2. 디렉터리 3-3. Spring boot 요청-응답 3-4. 3장 실습 + 디테일 개념 3-1. 계층 계층은 각자의 역할과 책임이 있는 어떤 소프트웨어의 구성요소를 의미합니다 그리고 각 계층은 서로 소통할 수 있지만 다른 계층에 직접 간섭하거나 영향을 미치지는 않습니다 스프링 부트는 다음 그림에서 보듯 각 계층이 양 옆의 계층과 통신하는 구조를 따릅니다 이 계층이 서로 통신하며 프로그램을 구성합니다 프레젠테이션 계층 HTTP 요청을 받고 이 요청을 비지니스 계층으로 전송하는 역할을 합니다. 이전 포스팅에서 본 TestController와 같은 컨트롤러가 바로 프레젠테이션 계층의 역할을 합니다. 비지니스 계층 모든.. 2023. 9. 21.
[묘공단/spring] 2장 스프링 부트3 시작하기 포스팅 목차 (책의 목차와 다릅니다 개인적으로 공부한 내용입니다) 2장 2-1. What is Spring? 2-2. IoC / DI / Been / Container 2-3. AOP , PSA 2-4. Spring Boot starer 2-5. Spring Boot 3 간단하게 실행해보기 2-1. What is Spring? 소프트웨어 분야가 발전하면서 대규모의 복잡한 데이터를 관리하는 애플리케이션(엔터프라이즈 애플리케이션)은 점점 복잡해졌습니다 그러다 보니 개발자는 전체적으로 신경 쓰면서 보안,안정성,서버제작을 하면서 로직,기능까지 개발하기엔 어려웠습니다. 스프링 프레임워크(Spring framework)는 위에서 언급한 서버,안정성,보안을 제공하는 프레임 워크였고 개발자는 기능과 로직에만 집중을 할.. 2023. 9. 20.
[묘공단/spring] 0-1장 개발환경 및 기본정리 포스팅 목차 (책의 목차와 다릅니다 개인적으로 공부한 내용입니다) 0장 0-1. 인텔리제이 (Intellij) 0-2. Build System (Maven , Gradle) 0-3. 포스트맨 postman 1장 1-1. 서버의 용어정리 (client , sever , DataBase, DBMS , IP, Port) 1-2. 애너테이션 (annotation) 이번 Spring 공부는 인텔리제이(Intellij)를 이용합니다. 자세한 개발환경 구축은 0. Spring start ( Intellij 설치, spring.io) 편에 정리해 놨습니다 0-1. Intellij 설치 (IDE설치) Java를 개발할 때 주로 사용하는 IDE(통합개발환경 / Integrated Development Environment.. 2023. 9. 18.
[묘공단/spring] Start- 포부 이번 골든래빗에서 스프링부트3에 대한 책을 출간하시고 관련된 스터디를 시작하시는데 묘공단 1기멤버로 시작하게 되었습니다해당 활동기간에는 중간고사도 있고 졸업논문작성도 있는 험난한 기간이지만스터디를 통해 서로 발전을 위해 많은 공부를 같이 하여 민폐없이 하고자 합니다. 묘공단의 포스팅 관련되어책에 관련된 포스팅과 코드를 저만의 방식으로 서술하여 묘공단 활동 기간이 끝나더라도많은 방향으로 책을 보시는 분과 어떻게 SpringBoot를 해보지 공부하지 라고 고민 하시는 분들에게 선택의 도움이 되고 방향성이 되었으면 하는 바람에 작성을 세부적으로 이어나갈 예정입니다 전자공학을 하다 저또한 이번년도부터 많은 IT지식을 흡수하고 있는 it전공 학부생으로써열심히 공부하고 다양한 시점으로 포스팅을 하고자합니다잘부탁드립니다 2023. 9. 17.
2-2 도메인 분석 설계 목차 1. 요구사항 분석 2. 도메인 모델과 테이블 설계 3. 엔티티 클래스 개발 4. 엔티티 설계시 주의점 1. 요구사항 분석 1) 실제 동작하는 화면을 먼저 확인한다. 2) 기능 목록을 추린다 3) 세부 요구사항을 정리한다 기능 목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다. 상품의 종류는 도서, 음반, 영화가 있다. 상품을 카테고리로 구분할 수 있다. 상품 주문시 배송 정보를 입력할 수 있다. 2. 도메인 모델과 테이블 설계 1)회원, 주문, 상품의 관계 회원은 여러 상품을 주문가능. 한 번 주문할 때 여러 상품을 선택할 수 있으므로 주문과 상품은 다대다(M:N)관계 하지만 .. 2023. 5. 20.
2-1 프로젝트 환경설정 목차 1. 프로젝트 생성 2. 라이브러리 살펴보기 3. View 환경 설정 4. H2 데이터베이스 설치 5. JPA와 DB 설정, 동작확인 1. 프로젝트 생성 1.스프링 부트 스타터(https://start.spring.io/) Project: Gradle - Groovy spring Boot :3.1.0 (강의는 2.7.12) 사용 기능: web, thymeleaf, jpa, h2, lombok, validation groupId: jpabook artifactId: jpashop java: 17(강의는 11 ) ※자신의 자바 버전과 동일한 버전을 선택해주세요. 압축을 풀고 intellij에서 open을 해줍니다 오픈을 하면 각종 의존관계에 의해 설치를 진행하는데요 다 설치가 끝나고 build.grad.. 2023. 5. 20.
[부록-1] 애너테이션(어노테이션)(@)정리 해당 애너테이션(@)정리는 실시간으로 추가됩니다 - 자바 대표적 애너테이션 @Override 선언된 메서드가 오버라이드가 되었음 @Deprecated 더 이상 사용되지 않음 @SuppressWarnings 컴파일 경고를 무시함 - Spring @SpringBootApplication main() 메서드의 역할을 하는 클래스에 사용하며 스프링 부트사용에 필요한 기본설정을 해줍니다. @SpringBootConfiguration 스프링 부트 관련 설정을 나타내는 @Configuration을 상속해서 만든 애너테이션 @ComponentScan 사용자가 등록한 빈을 읽고 등록하는 애너테이션. 즉, @Component애너테이션 및 @Service, @Repository, @Controller어노테이션이 부여된 Cl.. 2023. 5. 16.
1-7 AOP 목차 1. AOP가 필요한 상황 2. AOP 적용 1. AOP가 필요한 상황 모든 메소드의 호출 시간을 측정하고 싶다면? 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? MemberService 회원 조회 시간 측정 추가 package hello.hellospring.service; @Transactional public class MemberService { /** * 회원가입 */ public Long join(Member member) { long start = System.currentTimeMillis(); try { validateDuplicateMember(member); //중복 회.. 2023. 5. 14.
1-6 스프링 DB 접근 기술 목차 1. H2 데이터베이스 설치 2. 순수 Jdbc 3. 스프링 통합 테스트 4. 스프링 JdbcTemplate 5. JPA 6. 스프링 데이터 JPA 목적 - 스프링 데이터 엑세스 1. H2 데이터베이스 설치 H2 :개발이나 테스트 용도로 가볍고 편리한 DB 웹 화면 제공 주의! h2 데이터베이터 설치 버전 관련 Spring Boot (2.X.X) 1.4.200 버전을 설치해주세요. Spring Boot (3.X.X) 2.1.214 버전이상을 설치해주세요. https://www.h2database.com/html/download-archive.html 만약 이미 설치하고 실행까지 했다면 다시 설치한 이후에 ~/test.mv.db 파일을 꼭 삭제해주세요. 그렇지 않으면 다음 오류가 발생하면서 접속되지 .. 2023. 5. 14.
1-5 회원 관리 예제 - 웹 MVC 개발 목차 1. 회원 웹 기능 - 홈 화면 추가 2. 회원 웹 기능 - 등록 3. 회원 웹 기능 - 조회 1. 회원 웹 기능 - 홈 화면 추가 Homecontroller @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } 제작후에 이제는 바로 컨트롤러에 맵핑된게 있으니까 정적.html이 안불러지고 이제는 HomeController로인해 home.html이 불러옴 참고: 컨트롤러가 정적 파일보다 우선순위가 높다. 2. 회원 웹 기능 - 등록 회원 등록 폼 개발 회원 등록 폼 컨트롤러 @Controller public class MemberController { private final.. 2023. 5. 14.
728x90