컨트롤러는 무엇인가 ?컨트롤러란 클라이언트의 요청을 처리할 메서드를 구현하는 것이다.@Controller전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용합니다. @Contoller 어노테이션을 붙이면 핸들러가 스캔할 수
상속클래스의 상속이라는 개념이다. "이미 만들어둔거 가져다 쓰자!" 라고 선언하는 것클래스 tutor에서 name하고 getname()을 바로 사용할 수 있다.Annotation이런 역할이 있어~ 라고 알려주는 것 abstract직접구현 안된다! 상속으로만 된다!CRU
POSTspring에서 POST 보내는 방식은 정해져있다.포스트맨을 사용해서 course api에 데이터를 넣어보았다.Header에서 application/json형태로 데이터 타입을 설정해주고, body에서 필요한 데이터인 title과 tutor의 이름을 같이 넣어주
1주차때 강의들었던 person클래스를 통해서 CRUD를 작성해보자이제는 LOMBOK를 쓰기 때문에 GET메소드를 일일히 만들어줄필요가 없다.클래스와 멤버변수를 넣어주고, 위에 @Getter 어노테이션을 사용해주면 된다.그리고
3주차 CRUD가 가능한 메모장을 만드는 실습을 해보자domain패키지를 만들고 시작하는데, entity 즉 테이블과 연결되는 클래스와 Repository는 domain 패키지 안에서 만들어줘야한다.domain 패키지 안에는 Memo클래스, Timestamped클래스,
API URL에서는 항상 복수형으로 써주기!MEMO 클래스는 작성자이름, 메모내용으로 구성되어있다.domain 패키지를 만들어서 MEMO.java 클래스를 만들어준다.클래스를 만들때는 각 db의 컬럼에 대응되는 것들과 함께, @entity를 사용해주고, @id값이나 @
먼저 네이버에서 클라이언트id랑 secret키를 발급받는다.get 방식으로 요청할때는 네이버에서 지정해준 url에 요청하게 되는데https://openapi.naver.com/v1/search/shop.json 까지가 지정해준 url이고 < ?query=
이렇게 api 설계를 하고 시작한다. 다음으로는 프로젝트를 준비했는데 하던대로 5개의 dependencies설치하고 시작했다.다음으로는 db를 설정해줬는데 resources > application.properties에서 를 작성해주면서 h2 디비랑 연결하는 것이다.
인증 (Authentication) : 사용자의 신원을 확인인가 (Authorization) : 사용자의 권한을 확인인증: 로그인을 통해서 본인임을 확인(주로 아이디와 패스워드이용)인가: 주로 역할에 따른 사용 권한을 관리예를들면 웹 카페 사이트에서 회원 랭킹 별로
일반 사용자와 관리자를 나눠 놓고 기능을 보자스프링서버에서 필요한 인증 및 인가기능이 구현되어있어서 편리하다.build.gradle > dependencies에 추가해주고 gradle 눌러준다.스프링 시큐리티와 타임리프 뷰 템플릿 엔진(로그인된 사용자의 이름을 표시해
현업에서는 프론트개발자가 UI파일을 구현하면 그것을 받아서 서버를 구현한다.로그인페이지를 받아오고 websecurityconfig 파일을 조금 수정해준다. 시큐리티에서 제공하는 로그인폼이아니라 html로 만들어져있는 로그인 폼으로 이동할수있도록 추가해주고, 로그인실패시
요구사항과 디자인 UI를 확인하면서 어떤 정보가 저장되야 하는지 확인해야한다.Signup페이지를 확인해보고서 테이블을 설계해보자 이렇게 user테이블을 설계했는데 특별하게 UserRole에서는 enum이라는 값을 사용해서 USER나 ADMIN값만들어올수있게 되었다.관리
스프링 시큐리티에서 제공해주고, 권고되고있는 BCrypt 해시함수를 사용해서 패스워드를 암호화하여 db에 저장해보자BCryptPasswordEncoder 함수는 스프링 시큐리티에서 제공해주는 클래스이다. 그냥 가져다가 사용한 것이고, 선언만 하면 패스워드 해주는 부분은
객체를 사용하는 두가지 방법이 있다.객체지향 프로그램에서 다른 객체를 사용하는 것을 다르게 표현하면 다른 객체에 의존한다고 표현한다.다른 객체를 사용하기 위해서는 객체를 생성하거나, 생성되어 있어야 하는데, 내가 직접 생성하여 사용할 수 도있고, 미리 만들어져 있는 것
JMT이 생각나는데.. JSON Web Token의 약자로 간단하게 설명하면 Header, Payload, Signature의 구조를 갖추고 있는 JSON 타입의 self-contained 한 암호화 서명이다. 기존에서 client와 server관계에서는 ex)1\.
생성자 패턴은 우리가 흔하게 사용했던 Constructor이다.먼저 일반생성자를 보면서 builder가 왜좋은지 알아보자User클래스에서 필수적으로 받아야하고, 선택적으로 받아야하는 정보가 있다고 가정해보자빌더패턴을 사용하지 않는다면, 필수정보만을 매개변수로 갖고 있는
Spring을 처음공부하면서 Front없이 RESTAPI로만 진행하는 미니프로젝트에서 회원가입과 로그인 기능을 맡게 되었다. 로그인을 구현하는 부분에서 spring security와 jwt를 연동하는 방식을 공부하게 되었다.Spring security는 spring과는
Spring Security 와 JWT를 연동하는 과정인데, security와 jwt의 설명은 따로 정리할 것이고, 구현 중인 것을 정리해보자security를 사용하기 위해서 gralde에 추가해줘야할 것들이 있다.jwt 관련 라이브러리도 추가하자implementati
DI(Dependency Injection)란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로,객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다.DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다.
요청이 왔을 때 어떤 컨트롤러가 호출이 되어야 하는지 알려주는 지표 같은 것이다.이렇게 매핑을 하면 localhost:8080/hello-basic으로 url을 입력했을 경우에 이것에 해당하는 메서드가 실행된다.다중 요청을 하려면 배열로 묶어야 한다. 이것처럼 다중 요
DAO는 (data access object)의 약자로, database에 접근하는 역할을 하는 객체를 말한다.프로젝트의 서비스 모델에 해당하는 부분과 데이터베이스를 연결하는 역할을 하며 데이터의 CRUD 작업을 시행하는 클래스입니다. 즉, DAO는 데이터에 대한 CR
JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 된다.JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동
Java 기반의 오픈소스 Back-end 프레임워크이다.스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고
Spring은 @Autowired 어노테이션을 이용한 다양한 의존성 주입(DI; Dependency Injection) 방법을 제공합니다.의존성 주입은 필요한 객체를 직접 생성하는 것이 아닌 외부로부터 객체를 받아 사용하는 것입니다.이를 통해 객체간의 결합도를 줄이고
스프링 웹 MVC 프레임워크의 레퍼런스의 첫 문장은 다음과 같습니다.The Spring Web model-view-controller (MVC) framework is designed around a DispatcherServlet that dispatches requ
Header, Payload, Signature가 JWT의 구성요소이다. 이들이 JSON형태로 담겨있어서 Json Web Token이다.이들을 부호화하고 암호화시켜 만들어낸 것이 오른쪽 형태이다.Header에는 어떤 알고리즘으로 암호화 할 것인지, 토큰은 어떤 타입을
Spring Security란 보안 솔루션을 제공해주는 Spring 기반의 스프링 하위 프레임워크입니다. Spring Security에서 제공해주는 보안 솔루션을 사용하면 개발자가 보안 관련 로직을 짤 필요가 없어 굉장히 간편합니다. Spring Security를 이해
그냥 처음 Spring을 controller > service > repository 사이에 dto를 넣으면서 진행하는 것을 학습했다. 이유로는 DB컬럼값을 직접 건들이지 않기 위해서라고만 알고 있었는데, 이런 이유보다 명확한 이유를 알고싶어서 찾아보게 되었다! DTO
controller가 무엇인지 알기전에 MVC 패턴에 대해서 알고 넘어가야 한다!MVC 패턴은 model-view-controller의 약자로 개발을 하는데 있어서 3가지 형태로 역할을 나누어 개발하는 방법론이다.Model어플리케이션이 무엇을 할 것인지를 정의하는 부분
Object Relational Mapping으로 , 객체 - 관계 매핑의 줄임말이다.객체-관계 매핑을 풀어서 말하면 OOP(Object Oriented Programming)에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB에서 쓰이는 데이터인 테이블을 자동으로 매핑
오늘 면접을 진행하면서 JPA, Hibernate, Spring Data JPA 차이에 대한 질문을 받았다.JPA와 Hibernate에 대한 지식은 알고있었는데, Spring Data JPA에 대해서는 잘 모르고 있었다.그냥 JPA = Spring Data JPA로 알