개발/etc
-
정리된 인증 과정개발/etc 2024. 4. 16. 16:42
별도의 인증 서버는 두지 않는다프론트엔드를 Next.js로만 구현하려고 했고 이는 키클록 인가 서버 혹은 스프링으로 인가 서버를 두게 되면 페이지를 Next.js로 개발하는 것에 한계가 있다. 키클록 인가 서버는 자체 페이지를 쓰거나 프리마커로 커스텀 하는 방식을 써야 하며, 스프링 인가 서버는 프레임워크에서 로그인 페이지를 렌더링해야 한다. 타임리프를 쓰면 되긴 하지만 이번 프로젝트에서는 직접 토큰을 다뤄보는 연습을 해보자.리소스 서버에서 토큰을 발행한다JJWT 라이브러리를 사용해서 토큰을 발행하고 클레임을 추출한다토큰 정책액세스 토큰의 만료 기간을 짧게 가져가고 리프레시 토큰의 만료 기간을 길게 가져가는 방식액세스 토큰이 유출됐을 때의 대안인데 리프레시 토큰이 유출되면 관리자가 무효..
-
[IntelliJ] 타임리프 및 클래스 변경 핫 리로드 적용하기개발/etc 2024. 2. 24. 01:13
application.yml spring thymeleaf: cache: false devtools: livereload: enabled: true restart: enabled: true 디펜던시에 devtools도 꼭 추가해주자. IntelliJ 메뉴 상단 Run -> Edit Configurations Modify optinos를 클릭해서 On 'Update' action과 On frame deactivation 에서 Update classes and resources를 해주면 된다. 새로고침 하면 타임리프와 클래스의 변경사항을 감지해서 서버 리스타트 혹은 리로드를 한다.
-
[Intellij] 다른 모듈의 클래스 사용하기개발/etc 2024. 2. 20. 15:57
메인 프로젝트 하위에 모듈들을 추가했고 공통 모듈 하나를 다른 하위 모듈들이 참조하는 형태다. 아래 이미지를 보면 authserver 모듈을 제외한 OAuth2Client, ResourceSercerFriend, ResourceServerPhoto가 SharedObject에 있는 클래스를 참조한다. 1. 최상위의 메인 프로젝트의 settings.gradle에 공유 모듈의 이름을 include 한다. 가장 윗줄에는 해당 프로젝트의 이름이 쓰여 있을 거다. Load Gradle Changes를 클릭해서 변경 사항을 빌드하도록 하자. 아이콘이 뜨지 않는다면 우측에 Gradle의 탭을 찾아가서 Reload를 해주자. rootProject.name = 'authorizationserver' include 'Sha..
-
[Git] LF wil be replaced by CRLF개발/etc 2022. 7. 19. 11:56
윈도우 운영체제에서는 줄바꿈이 CRLF(carriage return / line feed)으로 처리되고 유닉스 계열(리눅스/맥)은 LF으로 처리됩니다. 만약 에디터에서 LF로 작업했을 때 윈도우 환경에서 git add로 파일을 스테이징하면 LF가 CRLF로 자동 변경되면서 경고 문구가 뜨는 겁니다. 개인적으로는 굳이 CRLF로 변경할 필요가 없어서 해당 경고를 꺼두었습니다. git config --global core.autocrlf false 끄기 전에는 매번 경고 문구가 다음처럼 떴었습니다. 끄고 난 후에는 뜨지 않습니다. https://www.delftstack.com/howto/git/git-lf-will-be-replaced-by-crlf/
-
[LNK 1104] 윈도우에서 좀비 프로세스 없애기개발/etc 2021. 7. 3. 21:16
비주얼 스튜디오에서 ctrl + f5 혹은 f5를 누르면 컴파일이 진행되면서 실행 파일이 만들어집니다. 창을 닫아도 프로세스가 죽지 않는 경우가 가끔 생깁니다. 이럴 때 LNK1104 오류가 발생하면서 빌드에 실패합니다. 특정 실행파일을 실행할 수 없다고 나옵니다. 작업 관리자를 열었을 때 해당 프로세스가 있으면 강제로 [작업 끝내기]를 하면 됩니다만, 보통은 안 뜨는 것 같습니다. 왜냐하면 클라이언트 프로그램은 종료됐기 때문입니다. 작업을 하다가 programmers.exe가 좀비 프로세스가 되었습니다. 이를 없애봅시다. cmd 창에서 tasklist 실행하면 해당 프로세스를 찾을 수 있습니다. 참고로 devenv.exe는 비주얼 스튜디오입니다. 프로세스 아이디가 20916입니다. taskkill /F..
-
[CS] 네트워크개발/etc 2021. 5. 18. 15:43
프로토콜 컴퓨터 간 데이터 통신을 원활하게 하기 위해 정해놓은 약속 HTTP(Hypertext Transfer Protocol) 하이퍼텍스트를 전송하는 규약을 의미한다. 하이퍼텍스트는 한 문서에서 다른 문서로 이동할 수 있는 하이퍼링크를 가진 문서를 말한다. 여기서 텍스트는 HTML이다. 비연결성 프로토콜이다. 요청(request)에 대한 응답(response)만 전달되며 연결이 유지되지 않는다. 상태도 유지하지 않는다(stateless). 비연결성을 해결하기 위해 쿠키와 세션이 사용된다. 쿠키 클라이언트(사용자)에서 저장하고 있는 서버의 정보다. 쇼핑몰의 장바구니, 자동로그인 팝업 체크 등의 정보를 쿠키를 통해 저장한다. 브라우저가 종료되도 쿠키는 별도의 만료시간에 따라 삭제된다. 로컬에 저장되는 만큼..