[인프런 워밍업 스터디 클럽 3기 백엔드] 1주차 발자국
강의 수강 내용클라이언트-서버-데이터베이스 구조클라이언트: 웹사이트를 요청하는 주체 (브라우저, 모바일 앱 등)서버: 요청을 처리하고 응답하는 시스템 (데이터 CRUD 작업 수행)데이터베이스(DB): 데이터를 저장하고 관리하는 시스템 (MySQL, Oracle 등)웹사이트 로딩 과정사용자가 브라우저 주소창에 URL 입력DNS 서버가 해당 도메인의 IP 주소를 반환브라우저가 HTTP 요청을 서버로 전송서버가 요청을 처리하고 데이터베이스에서 데이터를 가져옴데이터를 HTML, JSON 등의 형식으로 클라이언트에게 응답웹 프레임워크웹 개발을 쉽게 하기 위한 도구 (ex: Spring, Django, Express.js 등)Spring FrameworkJava 기반 웹 프레임워크로, 자바 웹 개발의 표준MVC 패턴을 활용하여 개발 구조를 체계적으로 관리MVC 패턴 (Model-View-Controller)Model: 데이터 관리 (DB와 상호작용)View: 사용자에게 화면 제공 (HTML, React 등)Controller: 요청을 받아 Model과 View를 연결레이어드 아키텍처 (Controller-Service-Repository)Controller: 사용자 요청을 처리Service: 비즈니스 로직 처리Repository: 데이터베이스 접근스프링의 핵심 기능 - 의존성 주입 (Dependency Injection)생성자 의존성이 바뀌는 것, 스택오버플로우 에러, 런타임에서 NullPointerException을 방지할 수 있어 가장 좋음수정자필드 HTTP와 REST APIHTTP클라이언트-서버 간의 통신 규약요청(Request)과 응답(Response) 구조HTTP 요청 메서드GET: 데이터 조회POST: 데이터 생성PUT: 데이터 수정PATCH: 데이터 일부 수정DELETE: 데이터 삭제REST APIURL을 활용하여 리소스를 표현하는 방식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을 이용한 프로젝트에 대해 배웠습니다. 백엔드 공부는 처음 해봐서 어려운 부분이 많았는데 열심히 해서 잘 따라가도록 하겠습니다!