[인프런 워밍업 스터디 클럽 3기 백엔드] 1주차 발자국
강의 수강 내용
클라이언트-서버-데이터베이스 구조
클라이언트: 웹사이트를 요청하는 주체 (브라우저, 모바일 앱 등)
서버: 요청을 처리하고 응답하는 시스템 (데이터 CRUD 작업 수행)
데이터베이스(DB): 데이터를 저장하고 관리하는 시스템 (MySQL, Oracle 등)
웹사이트 로딩 과정
사용자가 브라우저 주소창에 URL 입력
DNS 서버가 해당 도메인의 IP 주소를 반환
브라우저가 HTTP 요청을 서버로 전송
서버가 요청을 처리하고 데이터베이스에서 데이터를 가져옴
데이터를 HTML, JSON 등의 형식으로 클라이언트에게 응답
웹 프레임워크
웹 개발을 쉽게 하기 위한 도구 (ex: Spring, Django, Express.js 등)
Spring Framework
Java 기반 웹 프레임워크로, 자바 웹 개발의 표준
MVC 패턴을 활용하여 개발 구조를 체계적으로 관리
MVC 패턴 (Model-View-Controller)
Model: 데이터 관리 (DB와 상호작용)
View: 사용자에게 화면 제공 (HTML, React 등)
Controller: 요청을 받아 Model과 View를 연결
레이어드 아키텍처 (Controller-Service-Repository)
Controller: 사용자 요청을 처리
Service: 비즈니스 로직 처리
Repository: 데이터베이스 접근
스프링의 핵심 기능 - 의존성 주입 (Dependency Injection)
생성자
의존성이 바뀌는 것, 스택오버플로우 에러, 런타임에서 NullPointerException을 방지할 수 있어 가장 좋음
수정자
필드
HTTP와 REST API
HTTP
클라이언트-서버 간의 통신 규약
요청(Request)과 응답(Response) 구조
HTTP 요청 메서드
GET: 데이터 조회
POST: 데이터 생성
PUT: 데이터 수정
PATCH: 데이터 일부 수정
DELETE: 데이터 삭제
REST API
URL을 활용하여 리소스를 표현하는 방식
GET /users/1 → 특정 사용자 조회
POST /users → 새 사용자 추가
[데이터베이스 개념]
관계형 DB (RDBMS)
데이터를 테이블 형태로 저장
MySQL, PostgreSQL, Oracle 등
NoSQL (비관계형 DB)
문서(Document) 기반 데이터 저장 (MongoDB)
Key-Value 저장 방식 (Redis)
데이터 관계 설정
1:N 관계: 하나의 학과에 여러 학생이 속할 수 있음
N:M 관계: 학생이 여러 개의 전공을 가질 수 있음 (중간 테이블 필요)
[JPA와 ORM]
JPA(Java Persistence API)
Java에서 DB와 객체를 매핑하는 기술 (ORM)
SQL을 직접 작성하지 않아도 데이터 조작 가능
트랜잭션 관리
Commit: 변경사항을 데이터베이스에 반영
Rollback: 작업을 취소하여 데이터 일관성 유지
영속성 컨텍스트
JPA가 관리하는 메모리 공간
데이터 조회 시 1차 캐시를 활용하여 성능 최적화
미션
https://start.spring.io/를 이용해서 스프링 프로젝트를 생성하고 Github에 올리는 것까지 진행했다.
https://github.com/seo-jiy00n/portfolio-jiyun
회고
1주차에는 웹 개발의 전반적인 개념과 Spring을 이용한 프로젝트에 대해 배웠습니다. 백엔드 공부는 처음 해봐서 어려운 부분이 많았는데 열심히 해서 잘 따라가도록 하겠습니다!
댓글을 작성해보세요.