일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- JoinColumn
- jpa에러
- 복합키
- queryDSL
- Q 클래스
- 최종 프로젝트
- JPA주의사항
- Filter
- github
- jwt메서드
- Spring Spring boot 차이
- 인텔리제이
- 스프링 부트 공식 문서
- ERD 작성
- JPA
- Unsatisfied dependency
- 빈생성안됨
- json
- REST란
- json gson 차이
- spring서버
- @IdClass
- uncheck Exception
- jpa회원가입
- REST API 규칙
- 스프링 부트 기능
- 스프링부트오류
- Error creating bean with name
- 1차캐시
- git
- Today
- Total
목록전체 글 (208)
Everyday Dev System
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bh6AMe/btsm7wqcuAP/7YYl2uRJKkDvI1EhDuZ550/img.png)
카카오 REST API를 활용하여 회원가입 하는 기능을 학습했습니다. 카카오 서버로 부터 인증 코드를 요청하고, 인증 코드를 전달받아서 인증 코드를 통해 토큰을 요청하고, 전달 받은 토큰으로 사용자 정보를 가져오는 코드에서 HTTP API Method가 post로 작성되어 있었습니다. 해당 http 요청이 post가 아니라 Get 방식이 맞지 않을까? 에 대해서 토론을 하고, 질문을 했습니다. 코드는 아래과 같습니다. RequestEntity requestEntity = RequestEntity .post(uri) .headers(headers) .body(new LinkedMultiValueMap()); 그러던 중 MultiValueMap은 Map의 구현체 중의 하나이고, 중복된 키값을 허용한다는 특징..
1. Security를 테스트할 때 적용할 것이다. 2. 가짜 Filter 클래스를 생성해야 한다. 1. 테스트시 사용할 가짜 Filter 클래스 생성 package com.sparta.myselectshop.mvc; import jakarta.servlet.*; import jakarta.servlet.http.HttpServletRequest; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import java.io.IOException; public class MockSpringSecurityFilter impleme..
먼저, MockMvc는 SpringBoot 프레임워크에서 내부적으로 자동으로 생성해주어 주입받아 사용할 수 있습니다. MockMvc를 만들고 테스트하는 방법을 알아보도록 하겠습니다. 1. MockMvc란? 테스트에 필요한 기능만 가지는 가짜 객체를 생성하여 애플리케이션을 실행하지 않고 Test코드만을 활용하여 스프링 MVC 동작을 재현할 수 있도록 돕는 클래스입니다. [build.gradle]에 의존성 추가를 합니다. testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' 2. MockMvc의 메소드 1) p..
1. KakaoService 코드 수정 1) kakaoLogin() 메서드에 코드 수정 - JWT 토큰을 생성하고 반환하는 코드 추가 public String kakaoLogin(String code) throws JsonProcessingException { // 1. "인가 코드"로 "액세스 토큰" 요청 String accessToken = getToken(code); // 2. 토큰으로 카카오 API 호출 : "액세스 토큰"으로 "카카오 사용자 정보" 가져오기 KakaoUserInfoDto kakaoUserInfo = getKakaoUserInfo(accessToken); // 3. 필요시에 회원가입 User kakaoUser = registerKakaoUserIfNeeded(kakaoUserInf..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cwazmW/btsmUIp6ZMw/7pKkXD5lQhoNpIbbKVOu7k/img.png)
애플리케이션은 카카오 서버에서 보내주는 인증 코드를 받아야 합니다. 리다이렉트 url 쪽으로 카카오 서버에서 인증 코드를 보내줍니다. 그러므로, 인증 코드를 받는 Controller를 만들어 줘야 합니다. 컨트롤러는 받은 인증 코드를 Service 단으로 넘겨줍니다. Service 단에서는 인증 코드로 토큰을 요청하고 카카오 서버로 부터 토큰을 전달 받습니다. 카카오 API 문서를 보면 아래와 같이 필수 입력 사항들이 나오니, 이를 참고하여야 합니다. 참고 : https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#req-user-info-request login.html 내에 들어가는 REST API 키가 필요합니다. Log into Selec..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bgBON1/btsmZg7Ba27/yGhFgkVQ9Fib5Pn9nOpLU0/img.png)
https://developers.kakao.com/console/app/936532/config/platform 카카오계정 accounts.kakao.com 해당 링크를 통해 나의 애플리케이션을 만든 후에 들어가서 Web에 도메인을 추가합니다. http://localhost:8081 등록하러 가기를 선택한 후에, Redirect URI 등록 버튼 클릭. http://localhost:8081/api/user/kakao/callback 입력 후 저장하고, 활성화 설정을 합니다. 왼쪽 카테고리 중 동의항목을 선택합니다. 닉네임을 필수로 설정합니다. 카카오계정을 선택으로 설정합니다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/btJryU/btsmOkXDChu/5NEp489XdERylksYAQ9ZKk/img.png)
Spring Security 는 필터 모임이라고 보면 됩니다. SecurityFliterChain을 Proxy 레이어로 감싸고 있습니다. DelegatingFilterProxy가 FilterChainProxy를 감싸고 있고, FilterChainProxy가 시큐리티 필터들을 모두 묶음으로 관리합니다. UsernamePasswordAuthenticationFilter는 AbstractAuthenticationProcessingFilter를 상속한 필터입니다. 여러개의 인증 방법이 있을 수 있음. 그러므로 AuthenticationProvider를 list로 갖고 있고 어덴케이션 매니저가 해당 요청에 맞는 provider를 맵핑해줌. UserDetails 인증된 정보를 가져오기 위함 User Entity 엔..
KPT 회고 (notion.site) 1. 한 주의 흐름 1) 한 일 시연 영상 : https://youtu.be/2LjzWP-4XJE 프로젝트 명 : The Developer Life 필수 작업 로그인 및 로그아웃 회원가입 게시글 CRUD 프로필 조회 및 수정 추가 작업 댓글 CRUD 기능 프론트엔드 구현 카테고리별 게시글 조회 '익명 게시글' 카테고리의 게시글의 작성자를 '익명'으로 표시 2) 느낀 점들 임채영 - 기술적인 부분의 느낀 점은 Thymeleaf 템플릿 활용법과 CSS, JS 부분의 학습이 필요하다고 생각합니다. 회사에 입사하여 협업을 할 때 프론트엔드 개발자와 백엔드 개발자의 충돌을 각자의 입장에서 모두 겪은 것 같습니다. 해당 경험을 통해 서버 개발자도 프론트엔드의 학습이 필요하다는 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/AUf4Z/btsmrSGTp2x/Cuubt6Q60QDZ8Jggg6BEu1/img.png)
질문 : github을 통해 형상관리를 하면 원본 Repo에 각자 branch를 나눠서 하는게 더 좋을까요? 아니면 각자 fork를 해서 Pull Request를 하고 원본 repo에 merge를 하는 방법이 더 좋을까요? 튜터님 답변 : 전자의 방법대로 하여 브랜치를 나누고 브랜치에서 pull request를 메인/dev 브랜치로 만들어 서로 리뷰 받는 쪽이 좋지 않을까 생각합니다. 후자는 회사에서 코드 베이스를 엄격하게 관리하는 경우에 활용하는 수준입니다. 그렇지만! 내배캠은 취직하기 위함이 목적이니 미리 연습해보기 위해 해당(후자의) 방법을 권유하는거 같습니다. 커밋 메시지를 잘 작성하여야 한다. Issue도 제목이라도 적어서 같이 [#11] 과 같이 적기! 질문 : 예를 들어 사용자가 로그인을 시..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/buvKT8/btsl6VpRHb6/iXcbVrhCCOidCL3GulxRck/img.png)
1. 블로그 프로젝트 추가 기능 구현 댓글 기능 추가 유저와 관리자 권한 부여 기능 로그인 시 토큰 관리 및 회원가입 권한에 따른 url 접근 허용 및 거부 2023.06.26 - [내배캠 주요 학습/Spring 심화] - myBlog - Version 2.1 myBlog - Version 2.1 Version 1.0 2023.06.15 - [내배캠 주요 학습/Spring 입문] - Spring Boot 블로그 서버 구현 github Repo https://github.com/Chaeyounglim/myblog > 로그인 및 회원가입을 구현하고, 게시글 작성 및 수정, 삭제 시에 JWT 토큰을 cdev.tistory.com 2. Spring Data JPA 에서 복합키 설정 복합키가 여러개일 경우 모두 ..