💻Today's Schedule
09:00 ~ 10:00 CODEKATA
10:00 ~ 10:30 스프링 기초 주차 발제
10:30 ~ 12:00 팀미팅
12:00 ~ 13:00 점심 식사
13:00 ~ 14:00 개인 학습
14:00 ~ 16:00 [특강] 새싹반
16:00 ~ 18:00 개인학습
18:00 ~ 19:00 저녁 식사
19:00 ~ 20:00 [OT] 수준별 베이직반
20:00 ~ 21:00 개인 학습
✍ Today I Learned
CODEKATA
- SQL 문제 풀이 (55번 조건에 맞는 사용자 정보 조회하기 )
- 알고리즘 (46번 숫자 문자열과 영단어 )
[프로그래머스/JAVA] 숫자 문자열과 영단어
문제설명네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.다음은 숫자의
fargoewave.tistory.com
스프링 기초
그레이들
그레이들(Gradle)은 빌드 자동화 시스템이다. 이 시스템은 자바 코드를 자동으로 빌드하여 실행 가능한 결과물로 변환하는 과정을 담당한다. 그레이들은 build.gradle 파일을 사용하여 빌드 스크립트를 작성하고, 외부 라이브러리의 의존성을 관리한다. 라이브러리를 쉽게 추가하고, Maven Repository에서 필요한 파일을 자동으로 다운로드해 온다. 이러한 기능을 통해 개발자는 라이브러리 간의 충돌을 걱정할 필요 없이 개발에만 집중할 수 있다.
서버
서버는 네트워크를 통해 클라이언트의 요청을 처리하는 컴퓨터 시스템이다. 클라이언트는 주로 웹 브라우저를 통해 서버에 정보를 요청하고, 서버는 이 요청에 응답하여 데이터를 제공한다. IP 주소와 포트 번호를 통해 네트워크 상에서 서버를 식별하고, HTTP 프로토콜을 사용하여 데이터가 전송된다.
HTTP
HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 주고받는 데 사용되는 통신 규약이다. 이 프로토콜을 통해 클라이언트와 서버 간에 요청과 응답이 이루어진다. 브라우저는 서버에 필요한 데이터를 요청하고, 서버는 해당 데이터를 응답하여 브라우저에 전달한다. HTTP 상태 코드를 통해 요청의 성공 여부를 확인할 수 있으며, 200번대 코드는 요청이 성공적으로 처리되었음을 의미한다.
테스트 코드 작성의 필요성
테스트 코드는 개발 과정에서 발생할 수 있는 버그를 미리 발견하고, 코드의 신뢰성을 확보하는 데 중요한 역할을 한다. Spring에서는 JUnit을 사용하여 테스트 코드를 작성할 수 있으며, 이를 통해 기능별로 코드를 검증하고, 배포 전 오류를 최소화할 수 있다.
Lombok과 application.properties
Lombok은 자바 코드에서 반복되는 메서드나 생성자 등을 자동으로 생성해주는 라이브러리다. 이를 통해 코드를 간결하게 유지할 수 있다. application.properties 파일은 SpringBoot 설정 파일로, 서버 포트 설정이나 DB 연결 정보 등을 간편하게 설정할 수 있다.
MySQL
MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 다양한 플랫폼에서 데이터를 관리할 수 있다. MySQL 설치 후에는 데이터베이스를 생성하고, 환경 변수를 설정하여 명령 프롬프트를 통해 MySQL에 접근할 수 있다.
Spring MVC
Spring MVC는 Model-View-Controller 패턴을 적용한 웹 프레임워크다. 중앙에 DispatcherServlet이 위치하여 클라이언트의 요청을 받아 적절한 컨트롤러로 전달하고, 응답을 처리한다. 이를 통해 코드의 재사용성과 유지보수성을 높이고, 효율적인 웹 애플리케이션 개발이 가능하다.
Controller
Spring MVC에서 컨트롤러는 클라이언트의 요청을 처리하고, 그 결과를 반환하는 역할을 한다. 컨트롤러는 @Controller 애너테이션을 사용하여 설정하며, 각 메서드에 @GetMapping, @PostMapping 등을 사용해 HTTP 메서드와 요청 URL을 매핑한다.
정적 페이지와 동적 페이지 처리
SpringBoot에서 정적 페이지는 /static 폴더에 위치한 HTML 파일을 직접 반환할 수 있다. 반면 동적 페이지는 컨트롤러에서 데이터를 처리한 후, 템플릿 엔진(예: Thymeleaf)을 사용해 동적으로 생성된 HTML을 반환한다.
데이터를 Client에 반환하는 방법
서버는 클라이언트의 요청에 대해 JSON 형태의 데이터를 반환할 수 있다. 이를 위해 @ResponseBody 애너테이션을 사용하며, 자바 객체를 JSON으로 자동 변환하여 응답으로 제공한다.
Jackson이란 무엇일까?
Jackson은 JSON 데이터를 처리하는 라이브러리로, 자바 객체를 JSON 문자열로 변환하거나, JSON 문자열을 자바 객체로 변환할 수 있다. SpringBoot에서는 Jackson 라이브러리가 기본으로 포함되어 있어 별도의 설정 없이 사용할 수 있다.
Path Variable과 Request Param
클라이언트가 서버로 데이터를 전송하는 방법에는 여러 가지가 있다. Path Variable은 URL 경로에 데이터를 포함하여 전송하는 방식이고, Request Param은 쿼리 스트링을 통해 데이터를 전송한다. Spring MVC에서는 이 두 가지 방법 모두를 쉽게 처리할 수 있다.
HTTP 데이터를 객체로 처리하는 방법
HTTP 요청에서 전달된 데이터를 객체로 변환하여 처리하는 방법은 매우 유용하다. Spring에서는 요청 데이터를 자동으로 자바 객체로 매핑해주는 기능을 제공하여, 복잡한 데이터를 간편하게 처리할 수 있다.
📝회고
스프링에 대한 개념은 이번에 처음 공부하는건데,
팀 프로젝트를 진행하며 MVC 패턴에 대해 공부를 했어서 그런지
아직까지는 크게 어렵게 느껴지지 않는다.
개인 과제를 보면 시작부터 깝깝하긴 하지만..
지금이 부족했던 자바문법과 스프링 기초를 튼튼히 다져둘 기회같다.
마음을 다시한번 다잡고 나아갈 타이밍~.. 파이팅~..
🔖Weekend Goal
- 스프링학습