본문 바로가기

java

(5)
#1) Spring Security Oauth2 Client + Apple 로그인 연동하기 이번에 인증 서버를 구축하면서 총 5개의 SNS 연동을 진행했다. (카카오, 네이버, 페이스북, 구글, 애플) 카카오, 네이버, 페이스북, 구글은 Spring Security Oauth2 Client로 연동하는 레퍼런스가 많아서 수월하게 진행했는데 애플은 다른 Provider(제공자 : 예를 들면 카카오, 네이버)의 OAuth2 인증방식과 다른 방식으로 사용자 정보를 넘기고 있어서 레퍼런스도 없고 해외에도 연동 예제가 없었다. 그래서 그냥 라이브러리를 분석해서 나의 방식대로 애플을 연동했는데 애플 로그인을 Spring Security Oauth2 Client에 연동하고자 하는 이들이 있으면 도움이 되고 싶어서 그 과정을 기록하고자 한다. 먼저 대부분의 Provider는 다음 그림과 같은 방식으로 동작한..
JAVA에서 volatile란 무엇인가!? 캐싱을 해야하는 새로운 기능을 개발하는 작업중에 만난 누군가가 작성한 아래의 코드를 보면 volatitle이라는 키워드로 선언한 변수가 있다. volatitle이 뜻하는 바는 무엇인가? 이는 자바 코드의 변수를 '메인 메모리에 저장'할 것을 명시할 때 사용된다. 멀티 쓰래드 어플리케이션에서 각 쓰래드들은 성능적이 이유로 메인 메모리로 부터 변수를 읽어 CPU 캐시에 복사하고 작업하게 되는데 이 키워드를 명시한 변수는 컴퓨터의 메인 메모리로 부터 읽히고 변수에 대한 쓰기 작업은 메인 메모리로 직접 이루어진다. volatile를 선언하지 않은 변수들은 어느 시점에 JVM이 메인 메모리로 부터 데이터를 읽어 CPU 캐시로 읽어 들이거나 혹은 CPU 캐시들에서 메인 메모리로 데이터를 쓰는지(write) 보장해 ..
백준 9461번 파도반 수열 [JAVA] DP알고리즘 문제로 규칙을 찾으면 쉽게 풀 수 있는 문제다. 1차원 배열을 선언해주고 index 4까지는 입력을 해준다 index 5부터는 알고리즘을 작성해서 입력한다. 규칙 P(N) = P(N-5) + P(N-1) 단, 배열을 int로 선언 할 경우, 범위를 초과해서 -값이 입력된다. 이를 방지하기위해 가장 큰 정수형 타입인 long으로 배열을 선언한다. package codingTest_backjoon; import java.util.Scanner; //파도반수열 public class Main_9461 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num = scan.nextInt(); for..
web.xml에 welcome-file 설정하는 방법 프로젝트를 Run했을 때, 내가 원하는 View(html/jsp)로 바로 이동하려면 web.xml에서 welcome-file을 지정해주면 된다! /WEB-INF/views/board.jsp 경로는 webapp이 기본값이므로 여기부터 경로 지정을 하면 된다 그리고 앞에 '/'를 꼭 붙여주어야 한다.
SVN 서버와 싱크 맞추기 방법! JAVA 개발자 양성과정을 수강할 때는 형상관리 툴로 git을 사용했는데 회사에 취직하니 여기는 SVN을 사용하고 있다. 요즘은 git을 사용하는 추세로 변하고있지만 아직 SVN을 사용하는 곳도 많다고 하니 익히면 좋을 것 같다 :) SVN Repositories에서 Check Out을 통해 소스를 받은 후 사용 방법을 포스팅합니다 소스받는 것은 안나와있어요ㅠㅠ! 1. Team > Synchronize with Repository(Ctrl+Alt+S)를 선택 이건 저장소(서버)에 있는 소스와 싱크를 맞춘다는 의미입니다! git이라면 merge의 개념인거 같습니다 2. 충돌이 일어난 부분 확인 그럼 SVN Synchonize가 실행되면서 해당 화면이 나옵니다 회색 화살표 ▶ : local에서만 수정하고, ..

반응형