오늘의 개발

    [TIL] 4주차 주특기 심화ㅣSpring Security

    주특기 심화 주간 개인 과제 우리 조는 Lv1까지 개인이 구현하고, Lv2부터 함께 협업하기로 했다. Lv1의 주제는 Spring Security이다. 🚩 Goal: "Spring Security를 적용한 나만의 항해 블로그 백엔드 서버 만들기" 현재 JWT로 구현되어 있는 회원가입/로그인 기능에 Spring Security를 덧붙이면 된다. Spring Security 적용 4단계 일단 gradle에 Security 관련 의존성 추가 WebSecurityConfig 생성 UserDetailsImpl, UserDetailServiceImpl 생성 비밀번호 bcrypt로 암호화 CustomSecurityFilter vs jwtAuthFilter 우리의 프로젝트에서는 토큰을 사용해서 인증/인가를 구현했습니다..

    [TIL] 4주차 주특기 심화ㅣ주간 시작

    주특기 심화 주간 시작 주특기 주간의 마지막인 심화 주간이 시작되었다. 이번 심화 주간의 학습 목표는 다음과 같다. 팀원 간 서로 코드를 적극적으로 공유하고 피드백을 받아 보세요. 면접에서 여러분에게 요구하는 것은 현업 개발자처럼 코드를 짜는 것이 아닌 자신이 쓴 코드에 이유가 있는 것입니다. 최대한 자신이 코드를 이렇게 작성한 이유를 말할 수 있는 기회를 만들어주세요! 이번 주차는 주특기마다 집중하셔야 하는 키워드들이 다릅니다! Spring: API 개발 & 테스트 코드 (실제 서버 개발자가 어떻게 일하는지 간접 경험을 해봅니다!) FE-BE 간의 협업은 다음 주에! 이번 주에는 주특기끼리 협업을 해봅시다! 위와 같은 목표를 가지고 이번 주간을 달릴 예정이다. 이번 과제는 팀 단위로 진행해야 하는데, ..

    [TIL] 4주차 주특기 숙련ㅣSpring 시험

    주특기 숙련 Spring 시험 오늘은 JPA 연관관계를 매핑하는 문제가 출제되었다. 문제는 총 4문제, 시간은 4시간. 순서대로 N:1 단방향, N:1 양방향, 1:N 단방향, N:M을 다대다 사용하지 않고 구현하기가 나왔다. 1) 다대일 단방향 연관관계(N:1) 여러 책(Book)들이 하나의 서점(BookStore)에 속할 수 있으므로, 다대일 관계를 적용한다. 다대일 관계에서는 '다'에 외래키가 있어야 한다. 따라서 Book 객체에서 BookStore 객체를 필드로 만들어 참조하도록 만든다. @JoinColumn : 조인 컬럼은 외래 키를 매핑할 때 사용한다. name 속성에는 매핑할 외래 키 이름을 지정한다. 이 어노테이션은 생략할 수 있다. // /com/exmple/spring_week_2_te..

    [TIL] 4주차 주특기 숙련ㅣ권한부여, 예외처리

    주특기 숙련 주간 개인 과제 개인 과제가 막바지에 이르렀다. CRUD API + JWT 로그인/회원가입 (Lv1) + 댓글 CRUD API, 회원 권한 부여, 예외처리 (Lv2) 어제 댓글 CRUD API까지 마무리했고, 오늘 회원 권한 부여와 예외처리를 작업하였다. 특히 예외처리 같은 부분은 강의에서도 따로 다루지 않아 굉장히 고생했는데 오늘의 TIL은 그 고생길을 담아보았다🙃 오늘의 궁금증 댓글을 작성 순으로 정렬하려면? 어제 댓글 CRUD를 작업하면서 빼먹은 요구사항이 있었다. 바로 댓글을 작성 순으로 정렬하는 것! 게시글 같은 경우는 Repository에서 Spring Data JPA 쿼리 메소드를 이용하여 정렬을 하였다. 이번엔 같은 조의 소영님이 알려주신 어노테이션을 이용해볼 것이다. @Ord..

    [Java] 추상 클래스

    07 상속 07-3 추상 클래스 추상 클래스란? 여러 클래스의 공통된 특성(필드, 메소드)를 추출해서 선언한 것을 추상클래스라고 한다. 추상 클래스와 실체 클래스는 부모, 자식 클래스로서 상속관계를 가진다. 추상 클래스의 용도 공통된 필드와 메소드의 이름을 통일할 목적 실체 클래스를 작성할 때 시간 절약 추상 클래스는 실체 클래스의 설계 규격 → 객체 생성용 X 추상 클래스 선언 abstract 키워드를 이용하여 선언한다. new 연산자로 객체를 생성할 수 없고, 상속을 통해 자식 클래스만 만들 수 있다. public abstract class 클래스 { // 필드 // 생성자 -> 자식 객체가 생성될때 super(...)로 호출 // 메소드 } 추상 메소드와 재정의 메소드 선언만 통일하고 실행 내용은 ..

    [Java] 타입 변환과 다형성

    07 상속 07-2 타입 변환과 다형성 다형성이란? 사용 방법은 동일하지만 다양한 객체를 이용해서 다양한 실행결과가 나오도록 하는 성질을 의미한다. 다형성은 메소드 재정의와 타입 변환으로 구현한다. 자동 타입 변환 자동 타입 변환(promotion)이란? 프로그램 실행 도중 자동으로 타입 변환이 일어나는 것을 말한다. 자식은 부모 타입으로 자동 타입 변환이 가능하다. 부모타입 변수 = 자식 타입; // 자동 타입 변환 cat과 animal 변수는 타입만 다를 뿐, 동일한 Cat 객체를 참조한다. Cat cat = new Cat(); Animal animal = cat; cat == animal // true 부모 타입으로 자동 변환 이후에는 부모 클래스에 선언된 필드 및 메소드만 접근 가능하다. 예외적으..

    [TIL] 4주차 주특기 숙련ㅣ댓글 CRUD API

    주특기 숙련 주간 개인 과제 이번 주간 개인 과제는 저번 CRUD API에 다른 기능들을 추가하는 것이다. 사실 주말 내로 강의를 다 듣고 과제를 시작한 건 어제였지만, 어제의 나는 밤샘 이슈로 제정신이 아닌 상황이었기에..^^ 오늘에서야 제대로 정리해본다. 🚩 Goal: "회원가입, 로그인, 댓글 작성/조회/수정/삭제 기능이 추가된 나만의 항해 블로그 백엔드 서버 만들기" 간단히 말하면, 이렇다. CRUD API + JWT 로그인/회원가입 (Lv1) + 댓글 CRUD API, 회원 권한 부여, 예외처리 (Lv2) 어제 JWT를 이용한 회원가입과 로그인을 마무리했고, 오늘 댓글 CRUD API를 마무리했다. 큰 범주에서 보면 저번 주와 같은 CRUD인데 JPA를 이용해서 게시글과 댓글의 연관관계를 정의하..

    [TIL] 4주차 주특기 숙련ㅣ조각모음

    책 스터디를 시작하다 저번에 구매한 책이 집에 도착한 지 한참인데 며칠째 단 한 장도 넘겨보지 못했다. 이대로 가다간 저기 어디 침대 밑에 보관만 할 것 같아서 겁도 없이 스터디를 만들어버렸다! 책을 이미 구매했거나, 구매 의향이 있는 같은 반 분들에게 스터디 제안을 건넸는데 다행히 한 분도 빠짐없이 흔쾌히 수락해주셔서 재밌는 모임이 만들어졌다. 사실 지금도 해야 하는 일들이 많고, 앞으로도 넘쳐날 텐데 '나'라는 사람을 믿고 함께해 주시는 것 같아서 감개무량하고.. 너무 감사하고...😭😭 한 분 한 분의 시간이 소중하므로 중간에 흐지부지 되고 싶지는 않아서 나름 열심히 찾아보고 스터디 관련 계획을 세웠다. 1) 같은 목표 2) 간단한 규칙 3) 정해진 기간 4) 적당한 책임감과 동기부여 이런 기준들을 ..