본문 바로가기

스프링15

3. 스프링 프레임워크의 핵심 기능 1. 의존성 주입의존성 주입(DI, Dependency Injection)는 '의존하는 부분을 외부에서 주입하는 것'을 의미한다. 지금은 이정도로 이해해도 충분하다. 2. 의존성자바에서 의존성은 여러 형태가 있다. 대표적으로 new 키워드로 클래스의 인스턴스를 생성하는 방법이 있다. 예를 들어, 어떤 프로그램에 '사용하는 객체' A 클래스와 '사용되는 객체' B 클래스가 있다고 가정하자. A 클래스에서 B 클래스를 사용하려면 new 키워드를 이용해 B 클래스의 인스턴스를 생성하고, B 클래스의 메서드를 사용하게 된다. 이때 B 클래스에서 구현했던 메서드를 변경하면 그 영향으로 A 클래스에서도 해당 메서드를 변경해야 한다. 이러한 관계를 'A 클래스는 B클래스에 의존한다'라고 한다. 의존에는 클래스 의존(.. 2025. 1. 11.
2. 자바 기초 지식 복습 1. 인터페이스(Interface)인터페이스(Interface)는 클래스에 포함하는 메서드의 구체적인 내용을 작성하지 않고 상수와 메서드 타입만 정의한 것을 의미한다. 자바에서 인터페이스는 다음과 같은 특징을 갖는다. 추상 메서드인터페이스 내의 메서드는 구현 내용 없이 메서드 시그니처만을 정의하위 클래스에서 반드시 구현해야 함다중 상속자바에서 클래스는 다중 상속을 지원하지 않지만, 여러 인터페이스 구현이 가능클래스는 여러 인터페이스에서 정의한 메서드를 모두 구현이 가능계약(Contract)클래스가 어떤 메서드를 반드시 제공해야 한다는 계약(Contract)을 정의클래스가 특정 인터페이스를 상속하면 해당 인터페이스의 메서드를 반드시 구현해야 함인터페이스 상속인터페이스도 다른 인터페이스로부터 상속이 가능여러.. 2025. 1. 11.
1. 스프링 프레임워크 개요 1. 프레임워크란?프레임워크(Framework)- 소프트웨어나 애플리케이션 개발을 간단하게 해주는 뼈대 프레임워크의 장점개발에 필요한 최소한의 기능을 제공애플리케이션 개발에 필요한 시간과 비용 최소화 프레임워크의 단점프레임워크 고유의 사용 방법에 대한 이해 2. 스프링 프레임워크란?스프링 프레임워크(Spring Framework)자바 개발 환경에서 사용되는 프레임워크동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공 스프링 프레임워크 구성 스프링 부트(Spring Boot)- 스프링 애플리케이션을 복잡한 설정 없이 빠르게 작성하는 기능을 제공 스프링 프로젝트스프링 MVC(Spring MVC): 웹 애플리케이션을 간단하게 생성하는 기능을 제공스프링 데이터(Spring Data): 데이터 접근에 관한.. 2025. 1. 11.
스프링(Spring): 스프링 부트로 이메일 인증 구현하기(feat. docker, redis, SMTP, IMAP, POP3) 1. 배경오늘날 회원 가입에서 휴대전화번호 혹은 이메일 인증 그리고 서드 파티 애플리케이션 인증을 흔하게 볼 수 있다. [회원, 인증] 도메인 담당한 경험이 있다면 언급한 세 가지 인증 수단 중에서 한 가지를 공부하거나 구현한 경험이 있을 것이라고 생각이 든다. 가장 흔한 인증 방식인 서드 파티 애플리케이션을 활용한 로그인 방식은 책 혹은 강의에서 흔하게 공부할 수 있다. 대표적인 서드 파티 애플리케이션은 카카오톡 인증 서비스가 있다. 스마트폰 앱과 웹 페이지 모두 제공해야 하는 서비스에서 서드 파티 애플리케이션 인증은 무상태(Stateless)를 준수하기 위한 최소한의 환경이기 때문에 탁월한 선택이라고 생각이 든다.(지금까지 경험으로 Stateless를 완벽하게 만족하는 것은 어려운 것으로 보인다.) .. 2024. 8. 6.
스프링(Spring) DTO, Service에서 유효성 검사: @NotBlank, @Pattern, @Size(feat. Validation, @Email, @NotEmpty) 1. 유효성 검사 시점DTO 레코드 타입을 작성하다가 유효성 검사를 어느 시점에 수행해야 가장 최적인지 고민하면서 공부한 내용을 정리한 글이다. 좀 더 구체적인 고민하게 된 배경을 살펴보고 유효성 검사에 대표적인 어노테이션들에 대해 학습한다. 클라이언트가 회원 가입에 필요한 정보를 포함하여 서버로 요청을 보내는 시나리오에서 생긴 고민이다. 해당 시나리오의 프로젝트는 계층형 아키텍처(Layerd Architecture) 구조로 Controller, Service, Repository, Model로 구성되어 있다. 이러한 계층형 아키텍처 구조에서 클라이언트로부터 받은 요청 데이터에 대해 유효성 검사를 어느 시점에, 어떻게 작성해야 가장 적절한지 고민하게 됐다. 2. DTO와 Service에서 유효성 검사결론.. 2024. 7. 31.
JWT(JSON Web Token): JWT 로그아웃 구현하기(Feat. Stateless) 0. 시작하기 전에 JWT(JSON Web Token): (이론) JWT 그리고 스프링 부트 적용하기0. 시작하기 전에강의 혹은 책에서 흔하게 JWT 토큰과 함께 OAuth2.0 을 함께 사용하여 네이버, 카카오, 구글, 애플 등 서드파티 애플리케이션에게 인증을 위임한다. 아쉽지만 현재 프로젝트에서는 Olimdae94.tistory.com지난 JWT 이론을 공부하면서 정리한 글이다. JWT 에 대해 자세한 내용을 정리했기 때문에 구체적인 설명은 해당 링크에서 공부할 수 있다. JWT(JSON Web Token)는 클라이언트와 서버 간의 정보를 안전하게 전송하기 위해 사용되는 JSON 기반의 토큰으로 문자열이다. JWT의 주요 특징은 다음과 같다. 1. 무상태성(Stateless)JWT 안에는 정보가 들어.. 2024. 7. 13.