본문 바로가기

Backend - Java Spring/Spring Boot 입문(완)28

[자율학습] 데이터 목록 조회 1. URL 요청받기 (컨트롤러) - 데이터 모두 조회 시 Iterable 로 나오는데, 이를 아래와같이 Repository에서 업캐스팅이 가능하다. - 똑같이 모델 등록 후 뷰 페이지를 설정하고 만들어준다. 2. 뷰 페이지 - articleList 를 쓰고 이게 데이터 묶음인 경우 내부 코드가 반복된다! 신기하네. 2024. 2. 6.
[자율학습] Data 조회 1. 순서 : Get요청 -> 서버의 컨트롤러 -> Repository에 전달 -> DB에 데이터 조회 -> DB는 찾아서 Entity로 반환 -> 반환된 Entity는 Model을 통해 뷰템플릿으로 전달 -> 뷰 페이지 완성 - 와 진짜 Express 그립다 2. ArticleController 에 코드 추가 (/controller/ArticleController) - id를 매개변수로 받아오기 - 리포지토리를 이용해 db에서 데이터를 가져오고 - 모델에 등록한 후 - 뷰 페이지를 반환한다. 3. 뷰 페이지 (mustache) - {{#article}} 을 태그처럼 사용해서 그 안에서 변수를 사용할 것이라고 표시한다. 2024. 2. 6.
[자율학습] 컨트롤러 만들기 1. /controller/어쩌고Controller 생성 2. @Controller를 선언한다 3. Controller - @Autowirded : DI (권장되지 않는다고 잔소리함) - @PostMapping : post 매핑 - createArticle 메서드로 Post 받음 - 순서는 Post를 받아서 dto -> entity -> repository - log.info는 @Slf4j 로깅 4. dto/ArticleForm - toEntity() 메서드 정의 - lombok으로 애너테이션 쉽게 씀 5. entity/Article - @Entity라고 선언 - Entity 파일에서 Column 설정 - Entity와 Repository는 JPA다. 6. repository/ArticleReposito.. 2024. 2. 6.
[자율학습] SpringBoot 3 입문 - 아는 건 넘어가면서 빠르게 기억해야할 것만 정리한다 1. @Controller 애너테이션 : 컨트롤러임을 선언한다. 2. @GetMapping(url) : url 을 get요청에 매핑한다. - model.addAttribute("변수", "값") 을 하면 변수에 값이 들어가서 mustache 템플릿에서 렌더링된다. - return : greetings.mustache를 자동으로 찾아서 렌더링한다. 3. mustache 에서는 {{>경로}} 로 component를 넣을 수 있다. 4. mustache 에서는 {{변수}} 로 데이터를 바인딩할 수 있다. 5. MVC패턴 실습 2024. 2. 6.
[SpringBoot3] Blog 기획하고 API 만들어보기 1. REST API - URL 설계 방식이다. - 동사를 쓰지 말고 자원을 표시해야 한다. - 동사는 HTTP 메서드로 한다. - Node/Express 하면서 지겹게 배웠던 내용이므로 나머지 생략 2. 엔티티 구성 컬럼명 자료형 null 허용 키 설명 id BIGINT N 기본키 일련번호, 기본키 title VARCHAR(255) N 게시물의 제목 content VARCHAR(255) N 내용 3. 단계별 작업 1) Domain의 Article class - Article class를 만든다 - Article.java - @Builder : 롬복에서 지원하는 애너테이션, 빌더 패턴 방식으로 객체를 생성할 수 있도록 한다. - 빌더패턴을 사용하지 않으면 new Article("abc","def") 이렇.. 2023. 10. 21.
[SpringBoot3] 데이터베이스 1. DBMS - 관리 시스템이다. - 이미 MySQL을 사용한 적이 있으므로 2. H2, MySQL - H2는 자바로 작성되어 있는 RDBMS이다. 스프링 부트가 지원하는 인메모리 관계형 DB이다. - H2는 데이터를 다른 공간에 따로 보관하는 것이 아니라 앱 자체 내부에 데이터를 저장하는 특징이 있다. - H2는 실제 서비스에서는 사용하지 않고, 개발 시 테스트용도로 많이 사용한다. - 실제 서비스로 올릴 때는 MySQL을 사용한다 3. ORM - Sequelize같은 거다. 자바에서는 JPA를 표준으로 사용한다. JPA는 ORM 인터페이스다.(자바 객체와 DB를 연결한다.) - 실제 사용을 위해서는 구현을 위해 ORM 프레임워크를 추가로 선택해야 한다. 여기서는 Hibernate를 사용한다. 4. .. 2023. 10. 20.
[SpringBoot3] 테스트코드 1. 테스트 코드 - 꼼꼼히 잘 작성해야 좋은 프로그래밍이다. 당연하다. - JS진영의 JEST기반의 유테/통테를 사용해봤으니, 금방 익혔으면 좋겠다. 2. SpringBoot의 테스트코드 - test 디렉터리에서 작업한다. - 다양한 패턴이 있으나, 여기에서는 given-when-then 패턴을 사용한다. - given : 테스트 실행을 준비하는 단계 - when : 테스트를 진행하는 단계 - then : 테스트 결과를 검증하는 단계 3. SpringBoot의 테스트도구 - spring-boot-starter-test 스타터에 테스트를 위한 도구가 모여있다. - 주로 JUnit과 AssertJ를 가장 많이 사용한다. 4. JUnit 사용 배우기 - JUnit : 단위테스트에 사용한다. 테스트 방식을 구.. 2023. 10. 20.
[SpringBoot3] SpringBoot3 구조 살펴보기 1. 구조 살펴보기 - 각 계층이 통신하는 구조를 따른다. - 각 계층이 소통할 수는 있지만 직접 간섭하거나 영향을 미치지는 않는다. 2. 각 계층구조 1) Presentation 계층 - HTTP 요청을 받고 비즈니스계층으로 전송하는 역할. - 컨트롤러가 역할을 한다. 2) Business 계층 - 모든 비즈니스로직을 처리한다. - 프로세스를 구축하는 계층이다. 3) Persistence 계층 - 모든 DB 관련 로직을 처리한다. - 이 과정에서 DB에 접근하는 DAO 객체를 사용할 수도 있다. - DAO는 DB계층과 상호작용하기 위한 객체이다. - Repository가 퍼시스턴스 계층의 역할을 한다. 3. SpringBoot의 디렉터리 구조 살펴보기 - main : 실제 코드를 작성하는 공간. - t.. 2023. 10. 20.