2주차 Spring MSA 학습 - RESTful API 설계와 스프링 프레임워크
1. Spring Core & 웹 아키텍처 ⚙️ 핵심 개념 강한 결합(Tight Coupling)의 문제점: 객체가 직접 new 키워드로 의존 객체를 생성하면, 하나를 수정할 때 연관된 코드를 모두 수정해야 하는 치명적인 유지보수 문제가 발생한다. IoC (Inversion of Control, 제어의 역전): 개발자가 직접 객체를...
1. Spring Core & 웹 아키텍처 ⚙️ 핵심 개념 강한 결합(Tight Coupling)의 문제점: 객체가 직접 new 키워드로 의존 객체를 생성하면, 하나를 수정할 때 연관된 코드를 모두 수정해야 하는 치명적인 유지보수 문제가 발생한다. IoC (Inversion of Control, 제어의 역전): 개발자가 직접 객체를...
웹 서버와 애플리케이션 아키텍처 Tomcat (웹 서버): 외부 클라이언트의 요청을 시스템에서 가장 먼저 받아들이는 문지기입니다 (대안: Undertow) Servlet (라우팅): 들어온 요청을 분석하여 알맞은 Controller로 연결해 주는 역할을 수행합니다 Domain (도메인): 시스템 내에서 다루는 핵심 비즈니스 개념들의 논리...
1. 왜 스프링일까? 스프링 프레임워크는 자바 기반 애플리케이션을 개발하는 데 필요한 거의 모든 기능을 지원하는 오픈소스 프레임워크다. 단순히 웹 개발뿐만 아니라, 데이터 처리, 보안, 배치 작업 등 기업 환경의 복잡한 시스템을 구축하는 데 필요한 포괄적인 프로그래밍 및 설정 모델을 제공을 한다. 무엇보다 스프링의 핵심 철학은 “좋은 객체 지향 ...
1️⃣ Homebrew 설치 macOS에서 Homebrew로 Java(OpenJDK)를 설치하면 JDK는 다음 경로에 설치됩니다. /opt/homebrew/opt/openjdk@21 하지만 기본적으로 JAVA_HOME 환경 변수는 자동으로 설정되지 않기 때문에 직접 설정해야 Java 기반 개발 도구들이 정상적으로 동작합니다. 2️⃣ Op...
1. [핵심 에러: Checksum Mismatch] 설명: 이미 데이터베이스(DB)에 실행된 마이그레이션 파일의 내용이 수정되어, DB가 기억하는 파일의 ‘지문(Checksum)’과 현재 로컬 파일의 ‘지문’이 일치하지 않는 현상 2. [발생 원인: 파일 정합성 위배] 기록 불일치: flyway_schema_history 테이블...
1️⃣ class vs record class public class User. { private String name; privateint age; public User(String name, int age) { this.name = name; this.age = age; } public String getName() {return n...
해당글은 공부 목적으로 정리한 개인적인 기록입니다. 정확하지 않은 정보가 포함될 수 있으며, 최신 기술 동향이나 공식 문서와는 차이가 있을 수 있습니다! 처음 구현하시는 분들께 작은 도움이 되었으면 하며, 혹시 틀리 내용이 있다면 댓글로 알려주시면 감사하겠습니다. Git 히스토리 조회 Git log는 옵션이 매우 다양하고 조합에 따라 출력 결과...
해당글은 공부 목적으로 정리한 개인적인 기록입니다. 정확하지 않은 정보가 포함될 수 있으며, 최신 기술 동향이나 공식 문서와는 차이가 있을 수 있습니다! 처음 구현하시는 분들께 작은 도움이 되었으면 하며, 혹시 틀리 내용이 있다면 댓글로 알려주시면 감사하겠습니다. ✍️ Commit Message 정의 Commit message는 “이 커밋...
해당글은 공부 목적으로 정리한 개인적인 기록입니다. 정확하지 않은 정보가 포함될 수 있으며, 최신 기술 동향이나 공식 문서와는 차이가 있을 수 있습니다! 처음 구현하시는 분들께 작은 도움이 되었으면 하며, 혹시 틀리 내용이 있다면 댓그로 알려주시면 감사하겠습니다. 🐳 Spring Boot OAuth2 인증 서비스 Docker로 배포하기 (Do...
해당글은 공부 목적으로 정리한 개인적인 기록입니다. 정확하지 않은 정보가 포함될 수 있으며, 최신 기술 동향이나 공식 문서와는 차이가 있을 수 있습니다! 처음 구현하시는 분들께 작은 도움이 되었으면 하며, 혹시 틀리 내용이 있다면 댓그로 알려주시면 감사하겠습니다. ✅ 1. Oauth2 Oauth2는 권환 위임(Authorization Del...