문제 상황이메일로그인(JWT) + 소셜로그인(OAuth2.0 카카오) 2가지 방법으로 로그인기능을 구현하고 있었다.이 과정에서 AccessToken(이하 AT), RefreshToken(이하 RT) 을 각각 세션스토리지와 쿠키에 저장하려고 했고, AT는 헤더를 통해 전달하기로 정했다. 이메일로그인은 헤더로 AT가 잘 넘어갔었기에, 카카오로그인도 같은 방식으로 하면 될줄알았다...(하지만 이것때문에 3-4일 개고생 할줄은 몰랐지)우리가 만들어둔 백엔드서버만 거치는게 아니라 카카오서버도 거쳐서 회원정보를 가져오고 로그인인증하는 과정이 추가되기 때문이다.서비스 로그인에서 서비스 로그인 세션으로 이동할 때,// OAuthLoginSuccessHandler.java// 액세스 토큰은 헤더에 추가 -> 리다이렉트시..
모바일 환경에서 window환경을 실행하고 싶었다. 마침 할아버지 댁에서 가져온 공기계 (갤럭시 z 플립3) 로 설치해보려고 한다. 준비물깡통이 되어도 되는 공기계 (안드로이드 기준으로 설명, 아이폰은 몰라요..)데스크탑 또는 노트북 (공기계와 연결할 일이 있습니다.)데스크탑과 공기계를 연결할 케이블 (대부분 CtoA 케이블일듯) 개발자모드 활성화핸드폰으로 별별 짓 (핸드폰 해상도를 강제로 변경하는 등..) 을 다하려면 먼저 개발자모드를 활성화해야한다. 설정 → 휴대전화 정보 → 상태 정보 → 빌드번호 7번 연타 (우다다다다다다ㅏㅏ다) 해주면 개발자 모드가 활성화된다. OEM 잠금해제 활성화만들어낸? 개발자 옵션에 들어가면 바로 보이는 OEM 잠금 해제를 눌러준다. !주의!여기서부터는 공기계를 초기화하..
API application programming interface뭐.. 손님의 요구를 요리사에게 전달하는 점원.. 이라는데 1도 모르겠음 좀더 현실적으로 정리된 글이 필요하다. 클라이언트에서 서버쪽에 필요한 데이터(정보)를 요청한다. 그럼 서버에 어떻게 접근해서 어떻게 데이터를 제공할것인가? 이 질문에서 시작하면 편하다.이 클라이언트는 서버와 데이터베이스에 접근해도 되는가? (보안)정보 요청의 폼(템플릿)은 어떻게 되는가? (원하는 데이터 종류, 타입등등)이런 것들을 정해주는게 API이다.클라이언트와 서버 사이에서 request, response 규칙, 정보를 원활하게 주고받기 위해 정리한 메뉴얼 API 명세API가 클라이언트와 서버가 데이터를 원활하게 주고받기 위한 인터페이스라면,API 명세서는 A..
https://www.codetree.ai/training-field/frequent-problems/problems/magical-forest-exploration/description?page=1&pageSize=5 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 중요 포인트골렘의 이동 (수직, 왼쪽, 오른쪽) 이 가능한지 어떻게 확인(check()) 할 것인지정령이 골렘과 골렘이 연결되어있는 길로만 이동가능한데, 내 골렘과 다른 골렘은 어떻게 구분할건지(골렘번호), 출구는 어떻게 구분할 것인지(골렘번호의 음수) 1. 골렘 이동 (move())골렘의 ..
java ↔ JDBC API ↔ DB 문제점1. 많은 양의 코드2. 개발자들간에 코드 일관성 확보3. connection pull issue4. java code 내에 sql문이 있음 -> 가독성 문제, string builder을 사용해야함 그래서! Java ↔ 편한 API ↔ JDBC ↔ DB편한 API가 껴들게 되는데, 그게 2가지가 있음Mybatis, JPA (이걸 구현한게 Hibernate) 차이점Mybatis는 java와 sql을 mapping해주는 역할JPA 는 ORM 기술 그 잡채이다.일단 오늘은 MyBatis부터.MyBatis를 위해서 이클립스에서 프로젝트를 만드는데, 여기서부터는 java project가 아니라, Maven project를 만든다. Build tool인 Maven j..
[지금 무료] 스프링부트 개념정리(이론) 강의 | 최주호 - 인프런최주호 | 스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, 스프링부트의 핵심은확실한 개념으로부터! 스프링부트 너무 어려운데 어떻게 시작하www.inflearn.com URECA 과정을 진행하면서 해당강의를 중심으로 스터디를 진행하고 있다. spring에 대해 1도 모르는 상태였기 때문에 개념정리를 목표로 시작했고, 현재 SpringBoot(1~14강)까지 완강후 정리한 상태이다. 복기를 위해 하나의 단원이 끝날 때마다 스터디 진행중에 논란?이 되었던 주제, 정확히 설명하지 못하는 주제에 대해 다시한번 정리하기로 했다.1. 스프링부트의 동작 구조 통신은 클라이언트의 요청을 받아서 내부에서 요청을..
SELECT 문법SELECT [*, distinct, 컬럼명들 + as 속성이름 변경]FROM [테이블명]WHERE [조건] [and / or] [조건] / [속성] (not)in (원하는 값) / [속성] (!)= (원하는 값) / like-- 여기까지 select 확정, 그 후로는 추가 조건-- 조건의 전체 또는 group by로 묶어서 처리GROUP BY [속성] -- 속성에 따라서 select값을 나눔HAVING [검색 조건]ORDER BY 테이블명 [asc / desc] -- 오름차순 내림차순크게 보면 이런식이다. 쿼리를 작성할 때 기본적으로 사용할 수 있는 함수가 있다.sum(), avg(), count(), max(), min()select sum(saleprice) as 총매출 from ..
그래프는 다양하게 있지만, 여기선 신장트리, 그 중에서도 MST (최소신장트리)에 대해 작성해보려고 한다. 신장트리 spanning tree: 그래프의 변형 트리는 부모 자식간의 관계, 그에 따른 차수, 높이가 있다. ex) 이진트리 여러 트리중에 신장트리란 각각의 정점들이 모두 연결된 트리 이다. 신장트리의 조건 (ST, spanning tree)(얘는 트리이므로)가중치는 있을 수 있지만, 무향(방향X)이다.cycleX () 그중에 최소신장트리(MST, minimum spanning tree)는 각각의 정점들이 최소비용으로 모두 연결되는 트리 이다. MST 구현방법쿠르스칼 - 간선중심프림 - 정점 중심(간선이 많을 때 사용)MST - 쿠르스칼: 간선 기반 알고리즘으로 간선을 비용순으로 정렬하여 최소비..
최단경로가장 짧은 경로, 길찾기 최단경로 유형은 "한 지점에서 다른 지점까지의 최단경로", "모든 지점에서 다른 모든 지점까지의 최단경로" 등으로 나눠볼 수 있다. 이러한 유형은다익스트라 알고리즘플로이드워셜 알고리즘그래프 알고리즘(BFS)greedy & DP 알고리즘벨만 포드 알고리즘등 정말 다양한 알고리즘으로 풀이할 수 있다. 다만 지금까지의 경험으로는 최단경로 문제는 왠만하면? 1~3번으로 거의 다 해결이 되는 느낌이었다.최단경로에는 가중치가 있는데 비용(cost), 거리(distance), 무게(weight) 이런식으로 있을 수 있다. 다익스트라현재 정점에서 다른 특정 정점가중치가 있는 경우O(NlogN) 플로이드워셜모든 정점에서 모든정점가중치가 있는 경우O(N^3) (ex) 사다리타기..?)..
[지금 무료] 스프링부트 개념정리(이론) 강의 | 최주호 - 인프런최주호 | 스프링부트를 공부하며 헷갈리는 개념이 많았던 분 스프링부트에 대해 공부하고 싶었던 모든 분, 스프링부트의 핵심은확실한 개념으로부터! 스프링부트 너무 어려운데 어떻게 시작하www.inflearn.comURECA 과정을 진행하면서 해당강의를 중심으로 스터디를 진행하고 있다. spring에 대해 1도 모르는 상태였기 때문에 개념정리를 목표로 시작했고, 현재 Spring과 JPA(1~7강)까지 정리한 상태이다. 복기를 위해 하나의 단원이 끝날 때마다 스터디 진행중에 논란?이 되었던 주제, 정확히 설명하지 못하는 주제에 대해 다시한번 정리하기로 했다. JPA : Entity 생명주기 관리영속성 컨텍스트를 통해 데이터 영구저장: 데이터를 ..