목록전체 글 (293)
개발자로 후회없는 삶 살기
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/course/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/dashboard 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 본론 -> 만드는 방법 먼저 팩토리 역할을 할 인터페이스(Creator)를 만들고 기본적인 구현을 구현 메서드로 만들고 제품마다 일부 바뀌어야할 부분을 추상 메서드로 만들어서 하위 구체 클래스에서 구현하도록 합니다. ..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/149 본론 - 연관관계 매핑 기초 테이블에 맞춰서 fk를 그대로 가져와서 설계하는 것이 아닌 연관관계를 갖춘 객체지향 설계를 배웁니다. 객체와 DB의 패러다임의 차이를 극복해 보겠습니다. 객체는 레퍼런스로 쭉 따라갈 수 있는데 테이블은 외래키를 이용합니다. 객체의 참조와 테이블의 외래키를 매핑하는 법을 배워야 합니다. -> 예제 시나리오 구체적인 예제로 알아봅니다. 회원과 팀이 있다. 회원은 하나의 팀에만 소속될 수 있다. 회원과 팀은 다대일 관계다.(회원이 N) -> 테이블에 맞춘 설계 @Id @GeneratedValue(strategy = GenerationType.AUTO) @..
서론JWT(Json Web Token)은 일반적으로 프론트엔드와 백엔드 사이에서 통신 시 권한 인가를 위해 사용하는 규칙입니다. 현재 진행하고 있는 캡스톤 디자인에서 REST API를 사용 중인데, 웹으로 Form을 통해 로그인하는 것이 아닌, API 호출로 프론트엔드에서 토큰으로 인증을 체크하고자 JWT를 선택하여 구현해보았습니다. 본론- 필요한 코드들저는 인터셉터와 커스텀 Argument Resolver를 이용해서 로그인한 사용자인지 필터링을 할 것이며, JWT를 이용한 로그인 인증을 할 것입니다. 따라서 필요한 파일들은 위 사진과 같습니다. AuthenticationPrincipalConfig : 인터셉터와 Argument Resolver 설정SecurityConfig : 스프링 시큐리티 설정aut..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/149 https://www.inflearn.com/roadmaps/149 www.inflearn.com 본론 jpa에서 제일 중요하게 볼 것은 내부 동작 구조 매커니즘과 객체와 DB를 어떻게 매핑해서 사용하는 지로 이번에는 매핑에 대해 알아보겠습니다. -> 엔터터 매핑 소개 객체와 테이블을 매핑하고 필드와 컬럼, 기본키, 연관관계를 매핑하면 됩니다. 회원과 팀처럼 서로 관계가 있을 때( ex 1대다) JPA에서는 어떻게 매핑해야 하는 지에 관한 내용입니다. - 객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리하는 엔터티로 @Entity가 붙지 않으면 JP..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/course/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/dashboard 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 www.inflearn.com 본론 - 싱글톤 패턴 오직 한 개의 인스턴스만 만들어서 글로벌하게 접근하도록하는 패턴입니다. public class App { public static void main(String[] args) { Settings ..
서론 프로젝트를 프론트와 백엔드로 분리하면서 연동하는 과정을 기록합니다. 본론 저는 최초로 리액트 프로젝트를 만드는 것이 아닌 생성되어 있는 리액트 프로젝트를 pull하여 스프링 프로젝트와 연결시켰어야 했습니다. 따라서 처음부터 리액트를 설치하는 과정에서 몇 개의 과정이 생략이 필요했고 밑에서 자세하게 알아보겠습니다. 1. nodejs 설치 리액트를 설치하기 위해서는 npm 명령어를 할 수 있어야 합니다. npm 명령어를 수행하기 위해 node js를 설치했습니다.(참고 1) 2. npm install 설치된 리액트 프로젝트에서 npm install을 통해 npm을 설치해줍니다. npx create-react-app 최초에 리액트부터 만드는 것이라면, 위 명령어로 리액트 프로젝트를 만드는 것이 필요하지만..
서론 초기 엔터티 구축 과정에서 발생한 중복 검증을 개선한 방법에 대해 설명합니다. 본론 - 초기 엔터티 구축 첫 번째 기능에 필요한 초기 엔터티를 구축합니다. @Entity @Getter @Table(name = "student") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Student extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "student_id") private Long id; @Column(name = "login_id", length = 255, nullable = false) private Strin..
서론 저를 처음으로 인정해 준 IT 대기업(NAVER) 인턴십 지원 과정부터 서류 작성까지의 과정을 기록합니다. 지원 과정에서 네이버 개발 인턴 직군의 서류, 코딩테스트에 관련해 정말 열심히 찾아봤는데 정보가 거의 없었고, 나중에 저와 같은 꿈을 가진 분들께 조금이나마 도움이 되기를 바라며 글을 작성합니다. 본론 - 인턴십에 지원하게 된 계기 저를 현재 7학기를 마친 4학년 학부생으로 BackEnd Developer와 Machine Learning Engineer를 꿈꾸며 ML 기술을 실서비스에 적용하고 운영하는 경험을 키워왔습니다. 이전에 활동했던 빅데이터 연합 동아리 동기가 제가 희망하는 직무에 100% 맞을 거라는 모집 공고를 추천해 줘서 네이버 Search CIC Market Intelligenc..