본문 바로가기

Back-end/멋쟁이사자처럼12

[멋쟁이 사자처럼] level10 구현 이번엔 level 10만 구현하면 되지만 양이 엄청 많다.. Member package backend.likelion.todos.member;import java.util.Optional;import org.springframework.stereotype.Repository;@Repositorypublic interface MemberRepository { // TODO [10단계] JpaRepository를 상속받습니다. // TODO [10단계] 아래는 기존 코드입니다. 컴파일 오류가 발생하고 있는데, 이를 해결하세요. Optional findByUsername(String username);} JpaRepository를 상속받는다. 이 때 제네릭타입을 명시해주어야한다.또한 인터페이스.. 2024. 5. 20.
[멋쟁이 사자처럼] level7~9 구현 오랜만에 클론코딩 과제가 나왔다... level7 은 모두 구현이 되어있었다! level8 GoalService public Long save(String name, String color, Long memberId) { // TODO [8단계] memberId로 회원을 조회하고, 조회에 실패하면 "회원 정보가 없습니다." 예외를 발생시키세요. Member member = memberRepository.findById(memberId) .orElseThrow(() ->new NoFoundException("회원정보가 없습니다.")); // TODO [8단계] 조회된 회원 정보를 사용하여 새 Goal 객체를 생성하세요. Goal .. 2024. 4. 30.
[멋쟁이사자처럼] level6 구현 벌써 4주차라니!!! 이번 과제는 이전에 해왔던 클론코딩을 하는 것이다. AuthArgumentResolver @Overridepublic boolean supportsParameter(MethodParameter parameter) { // TODO [6단계] parameter가 @Auth 어노테이션을 갖고 있고, 파라미터 타입이 Long.class인 경우 true를 반환하는 조건을 구현하세요. if (parameter.hasParameterAnnotation(Auth.class)){ if(parameter.getParameterType().equals(Long.class)){ return true; } } return false;} 파.. 2024. 4. 2.
[멋쟁이사자처럼] 질문 정리 과제 이번에는 과제로 나온 질문들에 대한 답을 찾아 정리하겠다! 1. 의존성을 주입하는 방법에는 무엇이 있는가? 각 방법의 장단점은 무엇인가? 어떤 기준으로 나눠서 사용하는가? 의존성을 주입하는 방법에는 3가지가 있다. - 생성자 주입- 필드 주입- 수정자 주입 스프링에는 @Autowired 어노테이션을 이용한 다양한 의존성주입 방법을 제공한다. 의존성 주입은 필요한 객체를 직접 생성하는 것이 아니라 외부로부터 객체를 받아서 사용한다. 1. 생성자 주입@Controllerpublic class CocoController {   //final을 붙일 수 있음 private final CocoService cocoService; //---------------------------.. 2024. 3. 27.
[멋쟁이사자처럼] 키워드 정리 과제 이번 과제는 주어진 주제에 대해 공부해보는 것이다. 시작! DI DI는 Dependency Injection의 줄임말로 의존관계 주입이라고도 한다. 의존관계란? "A가 B를 의존한다" 의 뜻은 B가 변경된다면 A도 변경된다는 의미이다 의존관계가 발생하는 상황은 다음과 같다. -B가 A의 필드-B가 A 메서드의 파라미터-B가 A의 로컬변수-B로 메세지를 보냄 public class Barista { private IceVanillaLatteRecipe iceVanillaLatteRecipe; public Barista() { iceVanillaLatteRecipe = new IceVanillaLatteRecipe(); }} 위 코드와 비교해봤을 때 public class .. 2024. 3. 27.
[멋쟁이사자처럼] level5 구현 2주차 과제는 토큰을 생성하고, 받은 토큰을 디코딩하여 원하는 정보를 얻는 것이었습니다. level5 public String createToken(Long memberId) { // TODO [5단계] 현재 시간과 설정된 만료 시간을 사용하여 만료 날짜를 설정하세요. key = Keys.secretKeyFor(SignatureAlgorithm.HS256); long nowMillis = System.currentTimeMillis(); Date now = new Date(nowMillis); Date exp = new Date(nowMillis + 3600000); // TODO [5단계] memberId를 클레임으로 추가하세요. Claims claims = Jwt.. 2024. 3. 19.