Java-Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

자바 / 스프링 / 스프링부트 스터디 정리
Java-Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

[Spring Boot] 04장. 머스테치로 화면 구성하기 - 서버 템플릿 엔진과 머스테치 소개

🌱 이번 장의 스터디 범위 서버 템플릿 엔진과 클라이언트 템플릿 엔진의 차이 머스테치의 기본 사용 방법 🌱 템플릿 엔진 템플릿 엔진 : 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력(생성)하는 소프트웨어 즉, 웹 사이트의 화면을 어떤 형식으로 만들지 도와주는 양식 🌱 템플릿 엔진 - 서버 템플릿 엔진 서버 템플릿 엔진 : JSP, Freemarker 프론트엔드의 자바스크립트가 작동하는 영역(브라우저)과 JSP가 작동하는 영역(서버)은 다름 서버 템플릿 엔진은 서버에서 구동하며 Java 코드로 문자열을 만든 뒤 문자열을 HTML로 변환해 브라우저에 전달해 화면 생성 반면 자바스크립트는 서버가 아닌 브라우저 위에서 작동하므로 서버 템플릿 엔진으로만 제어 가능 (서버 템플릿 엔진이 필수) 🌱 템플..

Java-Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

[Spring Boot] Spring 웹계층

🌱 API와 Spring 웹 계층 API를 만들기 위해 총 3개의 클래스가 필요 Request 데이터를 받을 Dto API 요청을 받을 Controller 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service Service의 역할은 비지니스 로직을 처리하는 것이 아닌, 트랜잭션, 도메인 간 순서 보장의 역할! Web Layer 컨트롤러(@Controller)와 JSP/Freemarker 등의 뷰 템플릿 영역 필터(@Filter), 인터셉터, 컨트롤러 어드바이스(@ControllerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역 Service Layer @Service에 사용되는 서비스 영역 일반적으로 Controller와 Dao의 중간 영역에서 사용 @Transactional이 사용되어야 ..

Java-Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

[Spring Boot] 03장. 스프링 부트에서 JPA로 데이터베이스 다뤄보자 - JPA Auditing

🌱 이번 장의 스터디 범위 JPA Auditing을 이용하여 등록/수정 시간을 자동화하는 방법 🌱 JPA Auditing으로 생성시간/수정시간 자동화하기 보통 엔티티에는 해당 데이터의 생성시간과 수정시간을 포함 : 차후 유지보수에 있어 중요한 정보 그러므로 DB에 삽입하기 전이나 갱신하기 전에 날짜 데이터를 등록/수정하는 코드가 필요 생성일 추가 코드 예제 public void savePosts() { ... posts.setCreateDate(new LocalDate()); postsRepository.save(posts); ... } 이런 코드가 모든 테이블과 서비스 메소드에 포함되면 코드가 지저분해지므로 JPA Auditing 사용 🌱 LocalDate을 사용해 JPA Auditing 자동화하기 J..

Java-Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

[Spring Boot] 03장. 스프링 부트에서 JPA로 데이터베이스 다뤄보자 - JPA

🌱 이번 장의 스터디 범위 JPA / Hibernate / Spring Data Jpa의 관계 Spring Data Jpa를 이용하여 관계형 데이터베이스를 객체지향적으로 관리하는 방법 🌱 JPA 소개 객체를 관계형 데이터베이스에서 관리하는 것이 중요 관계형 데이터베이스가 SQL만 인식할 수 있어 프로젝트의 대부분이 SQL로 채워지며 SQL을 피할 수 없음 반복적인 SQL을 만드는 것을 통해 단순 반복 작업의 문제가 생김 어떻게 데이터를 저장할지에 대해 패러다임 불일치 문제가 생김 관계형 데이터베이스와 객체지향 프로그래밍 언어의 패러다임이 달라 객체를 데이터베이스에 저장하려고 하니 문제 발생 JPA는 지향하는 바가 다른 객체지향 프로그래밍과 관계형 데이터베이스의 중간에서 패러다임을 일치시켜주기 위한 기술 ..

Java-Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

[Spring Boot] 02장. 스프링 부트에서 테스트 코드를 작성하자

🌱 이번 장의 스터디 범위 TDD와 단위 테스트란 스프링 부트 환경에서 테스트 코드를 작성하는 방법 자바의 필수 유틸 롬복의 사용법 🌱 테스트 코드 소개 TDD : 테스트가 주도하는 개발로 테스트 코드를 먼저 작성하는 것부터 시작 단위 테스트 : TDD의 첫 번째 단위인 기능 단위의 테스트 코드를 작성하는 것, 순수하게 테스트 코드만 작성하는 것 🌱 테스트 코드의 이점 빠른 피드백 자동검증 개발자가 만든 기능을 안전하게 보호 (기본 기능이 잘 작동되는 것을 보장) 🌱 테스트 코드 작성을 도와주는 프레임워크 JUnit - Java → 이를 앞으로 사용할 것! DBUnit - DB CppUnit - C++ NUnit - .net 🌟 즉, 톰캣과 Postman을 통해 HTTP를 요청하고 요청 결과를 검증하기 ..

Java-Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

[Spring Boot] 01장. 인텔리제이로 스프링 부트 시작하기

🌱 이번 장의 스터디 범위 인텔리제이를 비롯한 각종 IDE를 관리하는 툴박스 소개 인텔리제이의 설치와 기본 사용법 mavenCentral, jcenter 비교 스프링 부트 프로젝트와 그레이들 연동 방법 인텔리제이에서 깃허브 사용하는 방법 🌱 인텔리제이 설치하기 젯브레인 툴박스 설치 : 젯브레인의 제품 전체를 관리해 주는 데스크톱 앱 툴박스를 이용한 인텔리제이 커뮤니티 버전 설치 인텔리제이 JVM 옵션 설정 : 인텔리제이를 실행하는데, 어느 만큼의 메모리를 할당할지를 결정 🌱 인텔리제이 커뮤니티에서 프로젝트 생성하기 인텔리제이를 실행할 때 모든 프로젝트를 한 번에 불러올 수 없으며, 한 화면에서는 하나의 프로젝트만 열림 테마 선택 - Darcula 단축기 설정 - Default 플러그인 선택 : 비활성화,..

Java-Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

[Spring Boot] 00장. MVC의 역할과 실행 흐름

🌱 Mission : 뷰 템플릿 페이지가 출력되기까지, MVC의 역할과 실행 흐름을 설명 🌱 웹 서비스의 동작 원리 웹서비스는 클라이언트와 서버의 요청과 응답으로 동작 클라이언트 : 서비스를 사용하는 프로그램, 컴퓨터 → 브라우저 서버 : 서비스를 제공하는 프로그램, 컴퓨터 → 스프링부트 🌱 MVC의 역할과 흐름 실습 🌱 리뷰 - 요청에서 응답까지 [Spring Boot] 스프링 부트 입문 - 뷰 템플릿과 MVC 패턴 [Spring Boot] 스프링 부트 입문 - 뷰 템플릿과 MVC 패턴 🌱 Mission : MVC 패턴을 활용한, 템플릿 페이지를 만드시오. 🌱 뷰 템플릿의 필요성과 머스테치 웹페이지의 변수를 활용하는 뷰 템플릿과 분야별 담당자를 나누는 MVC 패턴 사용자 수마다 생성 gaga-kim.t..

Java-Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

[Spring Boot] 00장. 뷰 템플릿과 MVC 패턴

🌱 Mission : MVC 패턴을 활용한, 템플릿 페이지를 만드시오. 🌱 뷰 템플릿의 필요성과 머스테치 웹페이지의 변수를 활용하는 뷰 템플릿과 분야별 담당자를 나누는 MVC 패턴 사용자 수마다 생성되는 페이지 ? → 화면을 담당하는 기술인 뷰 템플릿을 통해 극복 뷰 템플릿 : 웹 페이지를 하나의 틀로 만들고 변수를 삽입해 틀이 되는 페이지가 변수의 값에 따라서 수많은 페이지로 변화 스프링 부트의 머스테치 (Mustache) : 뷰 템플릿을 만드는 도구 뷰 템플릿에는 처리 과정을 담당하는 Controller와 데이터를 관리하는 Model가 존재 MVC 패턴 : 화면, 처리, 데이터를 각 담당자 별로 나누는 기법 🌱 뷰 템플릿의 위치 프로젝트명 - src - main - resources - templat..