프로젝트 셋팅
프로젝트 생성 및 설정
Spring Web과 Lombok을 포함한 기본 Dependencies를 추가해서 프로젝트를 만든다. 이후 프로젝트 설정에서 import 관련 옵션을 켜준다. import 설정(설정 -> 에디터 -> 일반 -> 자동 가져오기)에서 다음 두 가지를 체크한다.
- 모호하지 않은 import 문 즉시 추가
- import 문 즉시 최적화
또한, 에디터에서 글씨 크기를 쉽게 조절하려면 Cmd + 마우스 휠 로 글자 크기 변경 기능을 켜줄 수 있다.
Gradle
Gradle은 빌드 자동화 시스템으로, Java 소스 코드를 실행 가능한 결과물로 바꿔준다. Gradle 탭에서 Tasks -> build -> build
를 실행하거나 build.gradle
파일을 직접 실행해 프로젝트를 빌드할 수 있다. 빌드 결과는 프로젝트/build/libs
폴더에 .jar
파일로 만들어진다.
build.gradle
파일은 소스 코드 빌드와 라이브러리의 요청을 관리하며 Groovy, Kotlin 언어로 작성된다. 필요한 라이브러리는 dependencies
에 추가하면 Maven repository에서 다운로드된다.
서버와 네트워크
네트워크
네트워크는 여러 대의 장비가 서로 연결이 되어 서로 정보를 주고 받을 수 있게하는 기술이다.
서버는 클라이언트가 요청한 정보를 처리하고 응답해준다. 네트워크는 여러 장비가 연결되어 정보를 주고받는 구조로, IP 주소와 포트 번호를 통해 통신이 이루어진다.
웹서버와 WAS
웹 서버는 브라우저의 HTTP 요청을 받아 처리하고, 결과를 HTTP 응답으로 돌려준다. 기본적으로 GET 메소드를 사용해 리소스를 요청한다.
- APACHE 웹서버
브라우저가 요청한 페이지를 처리하고, HTML 같은 문서를 돌려주는 역할을 한다. 동적인 콘텐츠는 WAS로 넘겨 처리하고, 정적인 콘텐츠는 직접 제공한다. - APACHE TOMCAT
웹서버와 WAS 기능을 합친 서버로, Web Container(Servlet)를 통해 작동하며, 기본 포트는 8080이다.
HTTP 개념 및 상태코드
HTTP는 데이터를 주고받는 통신 규약이다. 클라이언트와 서버가 데이터를 주고받을 때 주로 쓰이며, 대부분의 브라우저가 HTTP를 기본으로 지원한다.
상태코드
- 1xx: 요청이 접수되었고 처리가 계속되고 있다.
- 2xx: 요청이 성공적으로 처리되었다.
- 3xx: 추가 조치가 필요하다.
- 4xx: 클라이언트 쪽에 문제가 발생했다.
- 5xx: 서버 쪽에 문제가 발생했다.
개발자 도구의 네트워크 탭에서 Headers와 Response를 확인해 요청과 응답이 잘 처리되었는지 볼 수 있다.
POSTMAN과 API 테스팅
POSTMAN은 API를 빠르고 쉽게 개발할 수 있게 도와주는 프로그램이다. API 테이블을 작성해 API 이름, 메소드, URL, 설명 등을 정리하면 협업할 때 유용하다.
Spring
Spring Framework와 Spring Boot
Spring Framework는 여러 기능을 제공하지만, 설정할 게 많다. 반면, Spring Boot는 어노테이션을 이용해 더 간편하게 설정할 수 있고, 개발에 필요한 기본적인 설정정보를 디폴트값으로 설정을 해준다. 외부 라이브러리와 의존성 관리도 쉽게 해준다. 내장된 Apache Tomcat이 포함되어 서버 환경을 구성할 수 있다.
테스트 코드
테스트 코드는 소프트웨어가 잘 작동하는지 확인하는 도구다. Spring에서는 JUnit을 사용해 테스트 코드를 작성할 수 있고, 자동으로 테스트를 할 수 있다. 테스트 코드는 빠르고 정확하지만, 작성하는 데 시간이 걸리고 유지하는 데 비용이 들 수 있다.
Lombok
Lombok은 자주 쓰는 기능을 어노테이션으로 간편하게 처리해주는 라이브러리다. 이를 통해 코드를 더 쉽게 작성할 수 있다.
application.properties 설정
Spring Boot에서는 application.properties
파일을 이용해 기본 설정을 바꿀 수 있다. 이를 통해 애플리케이션의 동작 방식을 조정할 수 있다.