JAVA 37

TIL_항해99_19일차

오늘의 정리 오늘은 스프링 심화 1주차 강의를 들으면서 Controller, Service, Repository에 대해 좀 알게 되었다. 스프링 기초주차 할 때 강의를 들으면서 왜 코드를 저 3개로 나누면서 왔다갔다 정신없게 하지라는 생각으로 하나도 이해 못하고 그냥 강의 복붙하면서 개인과제를 해결했다. 지금은 많이는 아니지만 조금 알 거 같다. Controller는 클라이언트로 부터 요청 받은 걸 Service에게 넘기고 Service로 부터 처리된 결과를 받으면 그거를 클라이언트에게 준다. Service는 요청 받은 걸 처리하고 DB사용이 필요하면 Repository에게 DB관련된거를 맡기고 받아서 다시 처리하고 다 처리된 결과를 Controller에게 준다. Repository는 DB관련된 일을 처..

JAVA 2022.05.28

[JAVA/SpringBoot] 객체 중복 생성 문제 해결 (1-14)

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 1주차 14강 객체 중복 생성 문제 해결] - springCore 프로젝트에서 실습 객체 중복 생성 문제 - ProductService 를 보시면 "new ProductRepository()" 코드가 중복되는 게 보이시나요? public class ProductService { public List getProducts() throws SQLException { ProductRepository productRepository = new ProductRepository(); // ... } public Product createProduct(ProductRequestDto requestDto) t..

JAVA 2022.05.27

[JAVA/SpringBoot] Controller, Service, Repository 역할 (1-12)★★

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 1주차 12강 AllInOneController 의 역할 분리] - springCore 프로젝트에서 실습 - 막간지식 : '자바 클래스명'과 '자바 파일 이름' 일치 해야 함 Controller, Service, Repository 역할 서버 개발자들은 서버에서의 처리과정이 대부분 비슷하다는 걸 깨닫고, 처리 과정을 크게 3개로 분리했습니다. 스프링에서 이미 구분해서 사용해 본적 있던 Controller, Service, Repository 입니다. 각 역할 별로 하는 일을 정리해 보죠. 1. Controller 클라이언트의 요청을 받음 요청에 대한 처리는 서비스에게 전담 클라이언트에게 응답 2..

JAVA 2022.05.27

[JAVA/SpringBoot] AllInOneController 의 문제점 (1-11)

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 1주차 11강 AllInOneController 의 문제점] - springCore 프로젝트에서 실습 [웹 서비스 구성도] - 전체적으로 순서를 보자 - 사용자가 웹 브라우저(클라이언트)를 사용한다. 웹 브라우저를 사용해서 API요청이 오면 서버는 그 요청을 받아서 DB에 어떤 SQL을 가지고 SQL언어(DB언어)를 사용해서 DB에 접근한다. - 지금 가장 어려움을 주는 거는 ==> 클라이언트, 서버, DB 모두가 다른 언어를 사용하기 때문에 그 중간 과정에서 커뮤니케이션 하기 위한 언어가 필요하다. 그래서 API, SQL 이런것들이 필요하다. ProductRequestDto 안에 관심 상품명(..

JAVA 2022.05.27

[JAVA/SpringBoot] 관심상품 등록 API 구현하기 (1-10)

[여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 심화 강의 1주차 10강 관심상품 등록 API 구현하기] - springCore 프로젝트에서 실습 -나만의 셀렉샵 API 기능 Method URL 반환 키워드로 상품 검색 GET /api/search?query=검색어 List 관심 상품 등록하기 POST /api/products Product 관심 상품의 희망 최저가 업데이트 PUT /api/products/{id} id 관심 상품 조회하기 GET /api/products List - 나만의 셀렉샵 UI를 연동함으로써 AllInOneController 의 API 동작을 검증하려고 합니다! ARC(Advanced REST Client)에서 Headers에 ..

JAVA 2022.05.27

[JAVA/SpringBoot] 스프링 심화 강의 1주차(1-9)

★ 스프링 MVC 중요!! [스프링 공식문서 https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc] [여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 MVC 이해 - Request] - 심화반 1주차 1-9강의 @RequestParam GET에서는 URL요청 안에 클라이언트에서 준 값 (ex. name, age)의 내용이 들어간다. POST에서는 URL에 있는 거를 감추기 위해서 쓰기도 한다. --> GET과 POST의 차이를 따로 공부 하되 차이점: 일단 POST에서는 (ex. name, age) 이 정보가 본문(body)에 들어간다. Content-Type : ..

JAVA 2022.05.27

[JAVA/SpringBoot] 스프링 심화 강의 1주차(1-8)

★ 스프링 MVC 중요!! [스프링 공식문서 https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc] [여기에 적은 거는 강의 내용을 다 적은게 아니라서 강의자료 보면서 이 게시글 참고하자.] [스프링 MVC 이해 - Response] - 심화반 1주차 1-8강의 스프링 MVC? MVC (Model - View - Controller) 디자인 패턴 Server 에서 HTML 을 내려 주는 경우 1. 정적 (static) 웹 페이지 Controller Client 의 요청을 Model 로 받아 처리 예) 회원가입을 위한 개인 정보들 (id, password, name) Client 에게 View (정적 웹 페이지, H..

JAVA 2022.05.27