반응형

Back-end/Spring 26

[SpringBoot] 7주차 스터디 ② (OAuth, 카카오 로그인)

https://soohyun6879.tistory.com/211 [SpringBoot] 7주차 스터디 ① (스프링 시큐리티) 스프링 시큐리티란? - '스프링 시큐리티' 프레임워크는 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어준다. - 인증: 사용자 신원을 확인하는 행위 e soohyun6879.tistory.com 이전 포스팅에 이어서 카카오 로그인을 구현해보겠습니다! OAuth OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 접근 위임을 위한 개방형 표준이다. 사용자가 애플리케이션에게 모든 권한을 넘기지 않고 사용자 대신 서비스를 이용할..

Back-end/Spring 2021.10.02

[SpringBoot] 7주차 스터디 ① (스프링 시큐리티)

스프링 시큐리티란? - '스프링 시큐리티' 프레임워크는 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어준다. - 인증: 사용자 신원을 확인하는 행위 ex) 로그인 통해 본인 확인 - 인가: 사용자의 권한을 사용하는 행위 ex) 역할에 따른 사용 권한 관리 (회원과 관리자) 이전에 만들어두었던 나만의 셀렉샵에 회원 가입 기능과 관리자 권한을 추가해보겠습니다. 1. 회원 가입 구현 사용자의 정보를 저장해야 하므로 User 테이블을 다음과 같이 생성한다. 사용자 역할을 구분할 수 있는 UserRole 도 생성한다. @Setter @Getter // get 함수를 일괄적으로 만들어줍니다. @NoArgsConstructor // 기본 생성자를 만들어줍니다. @Entity..

Back-end/Spring 2021.10.02

[SpringBoot] 6주차 스터디(객체 지향, DI)

1. 절차적 프로그래밍 VS 객체 지향 프로그래밍 ● 절차적 프로그래밍 - Service, Repository 를 따로 두지 않고 Controller 하나로 모든 것을 해결하는 방식이다. 각 API의 처리 내용을 쭉 나열해놓는 코딩 방식을 의미한다. - 하지만 이런 방식은 문제가 있다! 테이블의 필드명을 바꾸거나 DB의 id와 pw 를 바꾸는 등의 경우 바꿔야 할 코드가 많다. 따라서 실수로 변경되지 않은 코드가 생길 수 있고 유지보수 하기 힘들어진다. ● 객체 지향 프로그래밍 - 서버에서의 처리 과정을 Controller, Service, Repository 로 분류하는 방식이다 ① Controller - 클라이언트의 요청과 응답을 처리한다. 요청에 대한 처리는 Service에게 전담한다. ② Serv..

Back-end/Spring 2021.09.23

[SpringBoot] 5주차 스터디 (AWS RDS, EC2)

이전에 만들었던 프로젝트를 AWS 와 연결하여 배포해보았다. 1. AWS RDS ① RDS 를 구매한다. 다음과 같은 설정으로 데이터베이스를 생성한다. ② RDS 포트를 열어준다. 생성한 데이터베이스에서 보안그룹을 클릭하면 두번째 사진과 같은 화면이 나온다. 그 화면에서 인바운드 규칙을 수정해주면 된다. ③ 스프링부트 프로젝트와 RDS 를 연결한다. 우측에 [Database] - [+] - [Data Source] - [MySQL] 를 선택한다. 선택하면 이런 화면이 뜨는데 RDS에서 설정한 것들의 값을 넣으면 된다. Host 는 RDS 데이터베이스의 엔드포인트이다. User와 Password 는 데이터베이스를 만들 때 설정한 마스터 이름과 마스터 비밀번호이다. Database는 데이터베이스를 만들 때 ..

Back-end/Spring 2021.09.16

[SpringBoot] 4주차 스터디 ② (나만의 셀렉샵 만들기, 네이버 쇼핑 API)

이전 포스팅에 이어서 계속해서 나만의 셀렉샵을 만들어 보겠다. https://soohyun6879.tistory.com/200 [SpringBoot] 4주차 스터디 ① (나만의 셀렉샵 만들기, 네이버 쇼핑 API) 네이버 쇼핑 API를 사용하여 나만의 셀렉샵을 만들어 보았다. 프로젝트 구조는 다음과 같다. 1. 네이버 쇼핑 API 신청하기 네이버 쇼핑 API 를 사용하기 위해서는 API 사용 신청을 해야 한다. 다음 링 soohyun6879.tistory.com 1. 네이버 쇼핑 API 사용하기 네이버 쇼핑 API 를 사용하여 검색된 상품 목록을 가져온다. 검색된 상품 목록은 String 형식으로 가져와지기 때문에 화면에 보여줄 수 있도록 하려면 DTO로 변환하는 과정이 필요하다. @Component /..

Back-end/Spring 2021.09.09

[SpringBoot] 4주차 스터디 ① (나만의 셀렉샵 만들기, 네이버 쇼핑 API)

네이버 쇼핑 API를 사용하여 나만의 셀렉샵을 만들어 보았다. 프로젝트 구조는 다음과 같다. 1. 네이버 쇼핑 API 신청하기 네이버 쇼핑 API 를 사용하기 위해서는 API 사용 신청을 해야 한다. 다음 링크에서 신청할 수 있다. https://developers.naver.com/docs/search/shopping/ 검색 API 쇼핑 검색 개발가이드 NAVER Developers - 검색 API 쇼핑 검색 개발가이드 developers.naver.com 다음과 같은 양식으로 API 이용 신청을 한다. 신청이 끝나면 Client ID 와 Client Secret 를 발급받을 수 있다. 2. Repo(Domain, Repository) - Repo 는 가장 안쪽 부분을 의미하고, DB와 맞닿아 있다. ..

Back-end/Spring 2021.09.09

[SpringBoot] 3주차 스터디 (메모장 만들기, Spring JPA)

Spring JPA 를 사용하여 메모장을 만들어보았다. 프로젝트 구조는 다음과 같다. 1. Repo(Domain, Repository) - Repo 는 가장 안쪽 부분을 의미하고, DB와 맞닿아 있다. 먼저 Memo.java 파일을 생성한다. 이 클래스는 DB의 테이블 역할을 하는 Domain 클래스이다. @NoArgsConstructor // 기본생성자 대신 생성 @Getter // Lombok이 getter 자동 생성 @Entity // 테이블과 연계되는 클래스임을 스프링에게 알려줌 public class Memo extends Timestamped { // 생성,수정 시간을 자동으로 생성하도록 상속받음 @GeneratedValue(strategy = GenerationType.AUTO) // ID ..

Back-end/Spring 2021.09.02

[SpringBoot] 2주차 스터디 (JPA, domain, repository, DTO, service, controller)

Spring JPA 란? SQL을 쓰지 않고 데이터를 생성, 조회, 수정, 삭제 (CRUD) 할 수 있도록 해주는 번역기 프로젝트 구조는 다음과 같다. 1. Domain, Repository Domain - DB의 테이블 역할을 하는 클래스 Repository - DB의 SQL 역할을 하는 인터페이스 먼저 Course.java 파일을 생성한다. 생성자를 직접 만들지 않고 Lombok을 사용하여 getter가 자동 생성 되도록 하였다. @Getter // Lombok이 getter 자동 생성 @NoArgsConstructor // 기본 생성자를 대신 생성 @Entity // 그냥 클래스 아니고 DB의 테이블 역할을 하는 클래스라는 것을 알려줌 public class Course extends Timesta..

Back-end/Spring 2021.08.28

[SpringBoot] 1주차 스터디 (RestController)

RestController - Rest 는 서버의 응답 형식이 JSON 형식임을 나타낸다. - Controller 는 클라이언트의 요청을 전달받는 코드를 말한다. - 즉, RestController 는 클라이언트의 요청을 받아 JSON 으로 응답 하는 것! 1. 프로젝트 생성하기 [New Project] 를 선택한 후 다음 사진처럼 프로젝트 옵션을 세팅한다. 프로젝트명(Artifact) 와 패키지 이름은 자신이 원하는 대로 바꿔도 괜찮다. 옵션 세팅이 끝나면 [Next] 를 누른다. 프로젝트에 필요한 패키지들을 가져온다. 다음 사진처럼 추가해주면 된다. 추가가 끝나면 [Finish] 를 눌러 프로젝트 생성을 완료한다. 2. 클래스 만들기 JSON 형식으로 응답하기 위한 클래스를 만든다. domain 패키..

Back-end/Spring 2021.08.19

[SpringBoot] Spring Data JPA로 게시판 만들기(5) - JPA Auditing으로 생성시간/수정시간 자동화

이전 포스팅에 이어서 이번에는 JPA Auditing 사용해 생성시간과 수정시간을 자동화해보겠습니다. JPA Auditing을 쓰는 이유? - 생성시간과 수정시간은 데이터베이스의 공통적인 칼럼입니다. 그래서 매번 데이터베이스에 insert/update 할 때 날짜 데이터를 생성, 수정하는 코드를 포함해야 합니다. 이 코드가 여러 테이블과 메소드에 포함되기 때문에 반복적인 코드가 많아집니다. 이 반복적인 코드를 줄이기 위해 JPA Auditing을 사용하는 것입니다. JPA Auditing을 사용하면 자동으로 시간을 매핑하여 데이터베이스의 테이블에 넣어줍니다. 1. 다음과 같이 파일을 만들어줍니다 2. BaseTimeEntity @Getter @MappedSuperclass @EntityListeners(..

Back-end/Spring 2020.11.22
반응형