전체 글 썸네일형 리스트형 [Spring] 의존 관계 주입 방법 4가지 목차생성자 주입Setter 주입필드 주입일반 메서드 주입 ✨ 의존관계를 자동으로 주입할 객체가 Spring Bean으로 등록되어 있어야 `@Autowired`로 주입이 가능합니다. 생성자 주입생성자를 통해 의존성을 주입하는 방법입니다. (가장 추천되는 방식) 특징최초에 한번 생성된 후 값이 수정되지 못합니다.(불변, final) 예시 코드더보기올바른 코드@Componentpublic class HelloController { // 불변 private final HelloService helloService; // 생성자 주입 @Autowired public HelloController(HelloService helloService) { this.helloSe.. 더보기 [Spring] Bean 등록 방법 목차자동 Bean 등록(@ComponentScan, @Component)수동 Bean 등록(@Configuration, @Bean) ✅ Bean 등록 방법에는 수동, 자동 두 가지가 존재합니다. 자동 Bean 등록(@ComponentScan, @Component)Spring이 클래스에 붙은 annotation을 보고 자동으로 Bean으로 등록합니다. 예시코드// myService 라는 이름의 Spring Bean@Componentpublic class MyService { public void doSomething() { System.out.println("Spring Bean 으로 동작"); } }@Configuration@ComponentScan(basePackage.. 더보기 [Spring] Spring Bean 어떻게 등록될까? 목차간단하게 Bean이란?@ComponentScan@ComponentScan 기본 사용 예@ComponentScan의 동작 순서 간단하게 Bean이란?Spring IoC 컨테이너에 의해 관리되는 객체를 말합니다. 즉, 개발자가 직접 객체를 생성하거나 관리하지 않고, Spring이 대신 객체를 생성하고 생명주기를 관리합니다. ❓Bean이 IoC 컨테이너에의해 등록되는 방법 : `ComponentScan`을 통해! @ComponentScanSpring이 특정 패키지 내에서 `@Component` Annotaion이 붙은 클래스를 자동으로 검색하고, 이를 Spring IoC 컨테이너에 Bean으로 등록하는 기능입니다. 개발자가 Bean을 직접 등록하지 않고도 Spring이 자동으로 관리할 객체들을 찾습니.. 더보기 [Project] Lv_7 스케줄 프로젝트(심화) 목차요구사항요구 구현트러블 슈팅 요구사항생성한 일정에 댓글을 남길 수 있습니다.✅ 댓글과 일정은 연관관계를 가집니다.댓글을 저장, 조회, 수정, 삭제할 수 있습니다.댓글은 아래와 같은 필드를 가집니다.✅ 댓글 내용, 작성일, 수정일, 유저 고유 식별자, 일정 고유 식별자 필드✅ 작성일, 수정일 필드는 JPA Auditing을 활용하여 적용합니다.ERD와 schedule.sql에도 일정 엔티티에 대한 내용 추가합니다. 요구 구현요구 구현에 앞서 추가된 Comment에 대한 API 명세서와 ERD 변경더보기 API 명세서 ERD CommentService더보기@RestController@RequestMapping("/api/comments")@RequiredArgsConstructorpublic .. 더보기 [Project] Lv_6 스케줄 프로젝트(심화) 목차요구사항요구 구현회고 요구사항Lv.3에서 추가한 비밀번호 필드에 들어가는 비밀번호를 암호화합니다.✅ 암호화를 위한 PasswordEncoder를 직접 만들어 사용합니다. 요구 구현build.gradle더보기dependencies { implementation 'at.favre.lib:bcrypt:0.10.2'}`at.favre.lib`라는 그룹에서 제공하는 `bcrypt` 라이브러리의 `버전 0.10.2`를 프로젝트에 추가합니다.Bcrypt 해시 함수를 Java에서 사용할 수 있게해주는 라이브러리입니다.평문 비밀번호를 안전하게 해싱합니다. (암호화)해시된 비밀번호와 사용자가 입력한 비밀번호를 비교하여 검증 PasswordEncoder더보기@Componentpublic class Passw.. 더보기 [Project] Lv_5 스케줄 프로젝트(심화) 목차요구사항요구 구현트러블 슈팅회고 요구사항Validation을 활용해 다양한 예외처리를 적용해 봅니다. → 1주차 Bean Validation 참고!정해진 예외처리 항목이 있는것이 아닌 프로젝트를 분석하고 예외사항을 지정해 봅니다.✅ Ex) 할일 제목은 10글자 이내, 유저명은 4글자 이내✅ @Pattern을 사용해서 회원 가입 Email 데이터 검증 등✅ 정규표현식을 적용하되, 정규표현식을 어떻게 쓰는지 몰두하지 말 것!✅ 검색해서 나오는 것을 적용하는 것으로 충분! 요구 구현User (Entity)더보기@Getter@Entity@Table(name = "user")public class User extends BaseEntity { @Id @GeneratedValue(strategy .. 더보기 [Project] Lv_4 스케줄 프로젝트(심화) 요구사항설명✅ Cookie/Session을 활용해 로그인 기능을 구현합니다. → 2주차 Servlet Filter 실습 참고!✅ 필터를 활용해 인증 처리를 할 수 있습니다.✅ @Configuration 을 활용해 필터를 등록할 수 있습니다.조건✅ 이메일과 비밀번호를 활용해 로그인 기능을 구현합니다.✅ 회원가입, 로그인 요청은 인증 처리에서 제외합니다.예외처리✅ 로그인 시 이메일과 비밀번호가 일치하지 않을 경우 HTTP Status code 401을 반환합니다. 요구 구현LoginController더보기@RestController@RequestMapping("/api/auth")@RequiredArgsConstructorpublic class LoginController { private final.. 더보기 [Project] Lv_3 스케줄 프로젝트(심화) 목차요구사항요구 구현 요구사항유저에 비밀번호 필드를 추가합니다.✅ 비밀번호 암호화는 도전 기능에서 수행합니다. 요구 구현요구 사항에 따른 ERD 수정더보기`password` column이 추가되었습니다. User더보기@Getter@Entity@Table(name = "user")public class User extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String username; @Column(nullable = false) private String password; p.. 더보기 이전 1 2 3 4 ··· 22 다음