단축키
목차만들기
간단한 방법이나 메커니즘, 실행 순서등
코드는 깃허브에서 보는식으로 진행
시나리오, 스토리를 통해 외우자
실무 커리부터 달리자
springboot 3.0.6
jdk 17
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
localhost:8080 접속해보기
IntelliJ JDK 설치 확인
Windows: File Project Structure(Ctrl+Alt+Shift+S)
Mac: File Project Structure (⌘;)
Windows: File Settings(Ctrl+Alt+S)
Mac: IntelliJ IDEA | Preferences(⌘,)
Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다.
정적 페이지를 index.html에 올려본다.
thymeleaf를 사용해서 동적페이지를 만들어본다.
서버에 배포할때 서버에 java -jar <jar파일>을 넣어주면 작동한다.
그냥 정적인 컨텐츠를 보여준다.
static 폴더에 정적인 파일을 다루는것을 말한다.
정적인 컨텐츠에 뷰리졸버를 통해서 처리를 해서 보여준다.
객체를 반환한다. 출력형식은 json이 통상적임.
객체를 반환하면 객체가 JSON으로 변환됨
xml방식은 요즘은 잘 사용안하고 json방식을 사용한다.
@ResponseBody 를 사용하면 뷰 리졸버( viewResolver )를 사용하지 않음
대신에 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY TAG를 말하는 것이 아님)
단순한 비즈니스 구현하기
db가 선정이 안됨 성능우선인지 일반적 관계형 db인지 nosql인지
레포지토리는 인터페이스로 한다. db선정이 안되서 그래서 메모리 기반 저장소를 만들거임
id는 시스템이 저장하는 id
일단 getter setter 함
Optional null일 경우 대체하기 위해 사용
private static Map<Long, Member> store = new HashMap<>();
동시성문제가 있을수 있다.
sequence는 0, 1, 2등을 생성하는 역할
name은 고객이 정한 이름