전체 글

Spring, Django, 코딩테스트 관련 지민의 TIL 블로그입니다!
구글 로그인구글 로그인을 하는 과정에서 "error_description": "malformed auth code." 라는 에러를 마주하게 되었다.구글의 승인코드를 받아와 해당 승인코드를 통해 jwt를 받아오려 하였으나, 이 부분에서 문제가 일어났던 것이다.문제점은 다음과 같았다!!!!- 발급된 코드4%2F0Adeu5BXSr6ULvZ92_2UNEUpsqKplv7lMu66sSLCRZVEfNwN14hbvQtS7uS1cVtyw5fqsGw발급된 코드의 앞부분인 %2F 부분이 인코딩이 잘못되어 잘못 인코딩된 인가코드로 jwt를 받아오려고 했더니 문제가 일어났다!private String toRequestAccessToken(String code) { // 발급받은 code -> POST 요청 ..
이번 스프린트 기간동안 개발한 나의 작업카카오, 구글 로그인 ( 구글은 보완 필요 )로그아웃, 회원 탈퇴일기 상세 페이지 API즐겨찾기, 화가 , 감정 API카프카 배포소나큐브를 통한 코드품질 확인카카오 , 구글 로그인 With Spring SecuritySpring Security 를 적용하기 위해 Spring Security in Action 책을 읽고 개발을 하였다!하지만 해당 책은 Spring Security 5.x.x 버전으로 현재 내가 개발하고 있는 springboot 3.x.x 버전에는 알맞지 않았다.스프링 시큐리티의 기본적인 로직은 다음과 같다.인증 필터를 거치고 인증 관리자를 거친후 , authenticatino provider에게 사용자 세부 정보와 암호 인코더를 받아서 인증을 한 이후..
KafkaSpring 에서 Kafka를 사용하려 하다 보니, 관련 설정들을 해주어야 했다. 해당 설정들에 대해서 살펴보도록 하겠다!ConsumerConfigpackage com.hanium.diarist.common.config;import org.apache.kafka.clients.consumer.ConsumerConfig;import org.apache.kafka.common.serialization.StringDeserializer;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annota..
배운것GitCherry-Pick💡 cherry-pick을 알게된 배경오늘 작업을 하다가 jira의 티켓 단위로 브랜치를 생성해 개발을 하려다 보니 feat-99 에서 개발한 코드가 feat-103에 필요하게 된 경우가 있었다. 하지만 feat-99를 Pull Request를 하고 나니 팀원들이 pr을 받아주고 내가 upstream 에서 가져올 때 까지 해당 코드를 사용하지 못하고 있었다! 팀원이 해당 코드를 따로 작성하라 하였으나 cherry-pick 에 대해서 알게 되어 사용하게 되었다.feat-99 에서 개발한 커밋 기록을 feat-103 브랜치로 가져올 수 있었다.이러한 과정 덕에 개발을 수월히 할 수 있었다.물론 리뷰 과정에서 해당 로직이 문제가 있다면 문제가 생긴다..!내가 원하는 커밋들만 가..
· 취업일기
하나금융 TI 면접 후기코딩테스트를 합격하고!!! 면접을 보라고 메일이 왔다.....음 개인적인 생각에 6문제 중 3 솔정도 한 거 같은데 당연히 떨어졌다 생각했지만 붙어버려서 놀랐었다....!!! 복장은 비즈니스 캐주얼이라 해서 그냥 니트 + 블레이저를 입고 갔다.근데 갔는데 무엇? 하나같이 양복 입고 와서 진짜 식은땀 줄줄 흘렀네... 다행히 인사담당자님께서 아무 영향 없다고 하셔서 안도하긴 했지만 아 이게 면접인가... 처음 느꼈다!인생의 첫 면접이라 엄청 긴장했고, 결과 발표날로부터 4일 후에 바로 면접을 보러 오라고 해서 시간이 매우 긴박했었다...아직도 그때만 생각하면 스트레스가 흘러넘쳐흐르네.........  9시 10분까지 오라고 했었고, 8시 50분까지 출석하는 사람들이 첫 면접시간 대였..
· CS
TDDTest Driven Development매우 짧은 개발 사이클의 반복에 의존하는 개발 프로세스이다.개발자는 우선 요구되는 기능에 대한 테스트 케이스를 작성하고, 그에 맞는 코드를 작성해 테스트를 통과한 후에 상황에 맞게 리팩토링 하는 테스트 주도 개발 방식을 의미한다!개발자는 테스트를 작성하기 위해 해당 기능의 요구사항을 확실히 이해해야 한다! 그렇기 때문에 요구사항에 집중할 수 있지만, 테스트를 위한 진입장벽과 코드의 증가가 단점이다!1. 테스트 케이스 작성만들고 싶은 기능을 점검할 테스트 코드를 작성한다. 이때, 아직 기능 코드를 구현하지 않았으므로 테스트 결과는 실패로 반환된다. 실패하는 테스트를 가장 빠르게 구현하는 방법은 아무 값이나 반환하도록 하는 것이다.2. 테스트 케..
이전 게시물의 V3에 이어 개선해낸 V4, V5 에 대해 코드와 함께 설명을 하겠다! V4 package hello.servlet.web.frontcontroller.v4; import java.util.HashMap; import java.util.Map; public interface ControllerV4 { /** * @param paramMap * @param model * @return viewName */ String process(Map paramMap, Map model); // model 도 넘겨줌.뷰의 이름만 전달. } Controller 계층에서 model 도 같이 전달해준다. package hello.servlet.web.frontcontroller.v4; import hello...
· Spring
MVC 프레임워크 만들기 V3, V4에 대한 설명 이후 V3,V4에 접근할 어댑터를 생성한 V5 버전에 대한 이해를 풀어내겠습니다. V3 package hello.servlet.web.frontcontroller.v3; import hello.servlet.web.frontcontroller.ModelView; import hello.servlet.web.frontcontroller.MyView; import hello.servlet.web.frontcontroller.v3.controller.MemberFormControllerV3; import hello.servlet.web.frontcontroller.v3.controller.MemberListControllerV3; import hello.ser..
· Spring
김영한의 Spring MVC (1)를 기반으로 작성합니다. Servlet 이란? 기존의 서버는 서버 TCP/IP 연결 대기, 소켓 연결, HTTP 요청 메세지를 파싱, 등등의 비즈니스 로직을 실행하기 위해서는 여러 업무를 처리했어야 했다. Servlet 을 지원하는 WAS를 사용해 의미있는 로직만 개발자가 작성할 수 있도록 도와주는 역할을 한다! @WebServlet(name = "helloServlet", urlPatterns = "/hello") public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response){ //애플..
· Java
String Java에서 String 은 불변하다. 필드에 String을 새로 주면 String을 바꾸는것이 아니라 참조하는 메모리 값을 바꾸는것이다. 즉, 문자는 new 객체로 새로 생긴다. StringTokenizer String 을 Token화 시키는것. 사용법 //1. 띄어쓰기 기준으로 문자열을 분리 StringTokenizer st = new StringTokenizer(문자열); //2. 구분자를 기준으로 문자열을 분리 StringTokenizer st = new StringTokenizer(문자열, 구분자); /* 3. 구분자를 기준으로 문자열을 분리할 때 구분자도 토큰으로 넣는다. (true) * 구분자를 분리된 문자열 토큰에 포함 시키지 않는다. (false) * (디폴트 : false)..
jmboy
dev_jm