전체 글156 애플 소셜 로그인 (with. Spring) 앱스토어에 등록하기 위해서, 반드시 구현을 해야 하는 애플 로그인.공식 문서를 열심히 탐독하고 적용한 과정, 그리고 우여곡절한 경험을 글로 남기고자 한다. 1. 인증 과정 2. Apple 서버에 로그인 권한 요청https://developer.apple.com/documentation/sign_in_with_apple/request_an_authorization_to_the_sign_in_with_apple_server 사용자가 '애플 로그인' 버튼을 클릭할 때 나타나는 로그인 페이지 url을 만드는 것부터 중요하다.특히 scope와 response_mode에 따라서 프론트와 서버에서의 구현이 달라질 수 있다. [Request]https://appleid.apple.com/auth/authorize.. 2024. 11. 5. OAuth 2.0 개념, 동작 과정 이해 소셜 로그인을 진행하기 앞서, 기본이 되는 OAuth 프로토콜을 알아보고 정리하는 시간을 갖기 위해 포스트를 작성하였다. 개념을 한 줄 요약하자면 "OAuth는 인가 과정에서, '인증'을 서비스에서 분리하는 과정이다." 1. OAuth 란? 우선 OAuth는 Open Authorization의 약자로, 이를 직역해보면 "권한 열기"이다.구글, 애플, 카카오톡과 같은 여러 플랫폼의 사용자 데이터에 접근하기 위해, 제 3자 클라이언트(우리의 서비스)가 사용자의 접근 권한을 위임받을 수 있는 표준 프로토콜이다. plus. 지금 글을 작성하고 있는 tistory도 카카오 OAuth를 사용하고 있다. 등장배경OAuth 이전에는, 사용자의 아이디/비밀번호를 직접 제 3자 서비스에 제공해야 했다.(예를.. 2024. 10. 31. SCC(Strongly Connected Component) 알고리즘 알고리즘 스터디를 하다가, 스터디원 한 분이 선정하신 문제를 풀다가 알게 된 유형이다.처음에는 union-find 문제인 줄 알았으나, 알고보니 새로운 유형의 문제였다.!! 착각했던 만큼이나 알고리즘의 글로서의 개념은 매우 비슷하다.union-find는 무향 그래프에서의 노드 간의 연결을, 동일한 부모 원소로 두면서 각 집합으로 표현을 한다.SCC는 유향 그래프에서의 노드 간의 명확한 연결만을, 동일한 부모 원소로 두면서 각 컴포넌트(집합)으로 표현을 한다.(그래서 `강한 결합 알고리즘` 알고리즘이라고 부른다.) 여기에서 "명확한 연결"이란 "두 노드 간의 자유로운 이동"을 뜻한다.무향 그래프에서는 간선에 방향성이 없어 자연스럽게 자유로운 이동이 가능했지만,유향 그래프에서는 간선에 방향성이 있어 a → .. 2024. 10. 26. [MySQL] View Processing Alogrighms (MERGE vs. TEMPTABLE) view 테이블을 활용한 업무 중 문득 아래와 같은 의문이 들었다. 가정. view 쿼리 결과가 1000만 건일 경우1) view 쿼리가 실행될 때 where 절도 함께 실행되어 단일 쿼리처럼 동작할까?2) 1000만 건을 모두 조회한 후 where 절이 추가로 실행될까? 1번처럼 동작한다면 문제가 없겠지만, 2번처럼 동작한다면 조회 시 바라생하는 비용이 클 것이고, view를 사용하기 위한 명확한 이유가 필요할 것이다. 그럼 아래에서 이 문제에 대해 "view는 어떤 식으로 동작하는지?"와 "view를 사용하는 것이 정말 효율적인지?"에 대한 답을 찾아보며, "나는 view를 올바르게 사용하고 있을까?"에 대해서 생각해보는 시간을 가져보자. 우선 MySQL에서 뷰를 생성할 때 사용할 수 있는 `ME.. 2024. 10. 11. Stack 알고리즘 Stack, Queue은 자료구조를 시작했을 때, 가장 처음 만나는 자료구조이다. 하지만.. 알고리즘에서 Stack 유형 알고리즘을 풀 때에는 번번히 어려움을 마주한다..😂먼저 Stack 유형이라는 것을 파악하기에도 힘들고(DP / Greedy로 우선 접근), 파악한다고 하더라도 응용 문제에서는 자체 테스트케이스에서 틀리는 경우가 많다. 물론 지금까지 Stack 문제를 많이 풀지 않아서 그런 것 같기도 하지만..무언가 정답 코드에 테스트 예제를 디버깅하면서 추적하면 이해가 잘 되지만, 그 전에는 확 와닿지 않는 느낌이랄까 그렇지만 Stack 문제를 풀 때마다 새롭고, 재밌다🤩일반 구현에 비해 직관적(눈은 직관적이지만, 머리는 복잡한..)이고, 시간복잡도 측면에서도 대부분 O(N)으로 효율적이게 해결할.. 2024. 9. 21. Jenkins CI/CD 구축하기 2편 (with. Docker) 1편에서 Jenkins를 구축하는 것까지 해보았으니, 2편에서는 본격적으로 Jenkins에서 'Item / Script / Plugin / Credential' 을 작성해보면서 CI/CD를 구축해보자. 1. Jenkins의 Item Jenkins에서 하나의 CI/CD 프로젝트를 구축하기 위해서는 Item을 생성해야 한다. Freestyle- GUI로 쉽게 작업을 설정할 수 있다.- 단일 빌드 작업에 많이 사용된다. Pipeline- 하나의 스크립트 파일(Jenkinsfile)을 통해 파이프라인을 코드로 정의할 수 있다. (버전 관리 가능)- 빌드, 테스트, 배포 등 여러 단계를 하나의 스크립트 파일로 쉽게 정의하여 작업에 대한 흐름을 파악하기 쉽다.- FreeStyle과 다르게 스크립트를 작성해야 하는.. 2024. 9. 5. 이전 1 2 3 4 ··· 26 다음