![[인프런 워밍업 클럽] 스터디 3기_백엔드 프로젝트 (Kotlin, Spring Boot)](https://cdn.inflearn.com/public/files/blogs/b043a941-ce34-4698-9a5e-22398f1ddabd/R1280x0.png)
[인프런 워밍업 클럽] 스터디 3기_백엔드 프로젝트 (Kotlin, Spring Boot)
공부 내용
섹션 2. 웹 개발 기본과 프로젝트 준비
1. 웹 서비스를 구성하는 요소
1) 클라이언트
요청하는 주체 (PC, 스마트폰의 브라우저(구글 크롬, 애플 사파리 등))
2) 서버
요청대로 작업을 수행한 후 응답하는 주체
일반적으로 데이터베이스에서 데이터의 CRUD 이후 결과를 클라이언트에게 반환하는 작업을 함
3) 데이터베이스
데이터의 집합을 의미하며, 그 집합을 저장 및 관리하는 프로그램을 DBMS (Database Management System)이라고 함
브라우저에서 주소창을 입력하면 어떤 일이 일어날까?
사용자가 주소창에 https://www.naver.com 입력
브라우저가 DNS 서버에서 해당 도메인의 IP 주소를 찾음
클라이언트(브라우저)가 해당 IP 주소의 서버로 요청 전송 (HTTPS 요청)
서버가 요청을 처리하고 필요하면 데이터베이스와 통신
서버가 요청에 대한 응답을 생성하여 클라이언트에게 전송
브라우저가 응답을 해석하고 HTML을 렌더링하여 웹 페이지 표시
2. 웹 프레임워크와 Spring
웹 프레임워크
동적 웹 서비스 개발을 편리하게 만들어주는 도구
웹을 개발할 때 공통적으로 요구되는 기능을 쉽게 활용할 수 있도록 제공
Spring Framework
Java 기반의 웹 프레임워크
MVC 패턴 (Model-View-Controller)
소프트웨어 아키텍처 디자인 패턴
사용자의 요청을 받아 데이터와 화면을 전달하는 과정에서 각각의 역할을 분담
✔ 주요 구성 요소
Model : 데이터를 담음
View : 데이터를 꺼내옴, 사용자에게 보여지는 화면을 담당함
Controller : 데이터를 넣음, 요청을 받아 작업을 수행함
레이어드 아키텍처 (Controller-Service-Repository)
가장 대중적인 소프트웨어 아키텍처
스프링 개발 시 대부분 레이어드 아키텍처 기반으로 개발하며, 3가지 계층으로 구분
✔ 주요 계층
Presentation (Controller): 클라이언트가 요청할 수 있는 인터페이스를 정의하고, 전달받은 데이터를 검증, Service의 메소드(처리 로직)를 호출
Business (Service): 목적에 맞게 데이터를 처리하고, 일반적으로 레포지토리의 다양한 DB 처리 메소드를 호출해 저장, 수정, 조회, 삭제 등을 수행
Data Access (Repository): DB에 접근해 작업을 요청하고, 다양한 DB 처리 방법을 제공하면 여러 서비스에서 공통적으로 사용할 수 있음
3. HTTP와 REST API
HTTP (Hyper Text Transfer Protocol)
네트워크로 통신하는 두 컴포넌트 간의 통신 규약
REST API
HTTP 통신으로 동작하는 애플리케이션의 기능을 정의하는 컨벤션 (강제성은 없음)
6. 패키지 구조
- domain
- presentation
- admin
섹션 3. 개발 - Domain
강의를 보면서 코드 쳐봤습니다 !
https://github.com/0802222/portfolio-dongdong.git
GitHub - 0802222/portfolio-dongdong
Contribute to 0802222/portfolio-dongdong development by creating an account on GitHub.
다음주부터는 미니 프로젝트 주제도 정하고 미션도 해야합니당 ㄷㄷㄷ
바쁘다 바뻐 !
1주차 회고
HTTP, DB와 같이 이미 알던 개념도 있고, 알고있었지만 아리송한 Java Bean 개념도 들었고, 영속성 컨텍스트와 같이 새로운 개념도 있었음
아직 익숙하지 않은 문법들이 있음 (필드만들 때 변수명 앞에 var 를 붙이는 것)
var id: Long?과 같이 자료형 뒤에 물음표가 붙으면 null이 허용된다 라는것도 새로 배움!
entity 패키지 작성할 때 1: 다 관계를 작성해봄 (experience : experinceDetail class)
양방향 연관관계 메서드 mappedBy를 알게 됨
처음보는 어노테이션과 java 중급-고급 문법이 언뜻언뜻 보임
=> 결론 : 모르는게 엄청 많지만 일단 따라해보는 중이다~
댓글을 작성해보세요.