일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- githubactions
- java
- 트랜잭션
- 티스토리챌린지
- Spring
- 토이프로젝트
- yaml-resource-bundle
- 프로그래머스
- springsecurity
- 액세스토큰
- 재갱신
- docker
- 백준
- CI/CD
- 스프링부트
- springdataredis
- 스프링
- AWS
- 소셜로그인
- 메시지
- 스프링시큐리티
- oauth2
- springsecurityoauth2client
- 도커
- JIRA
- 오블완
- 리프레시토큰
- 국제화
- 파이썬
- 데이터베이스
- Today
- Total
목록전체 글 (102)
땃쥐네

백엔드의 기본기가 되는 게시판을 구현해보기로 했습니다. 화면 구현도 생각해봤는데, 백엔드 시스템 하나 구현하기도 생각보다 할게 많아서 백엔드 API 에 집중하기로 했어요.정말 여유가 생기면 프론트엔드 구현도 고려해볼 생각입니다. 게시판을 막상 구현하라고 하면 뭘 구현해야할지 감이 안 서서, 현재 시중에 유명한 커뮤니티 사이트 몇 군데를 찾아봤습니다. 네이버 카페, FM 코리아, 아카라이브, 디시인사이드, ...그 외에도 SNS 서비스인 인스타그램, 페이스북, 트위터 등등도 유명합니다.각각의 사이트의 구조를 겉에서 확인해보고 공통적인 것을 약간씩 추려내면서 기능을 간단하게 나마 기획해봤습니다. 어떤 기능이 있으면 좋겠다, 라는 간단한 생각에서 시작하여 이 기능은 어떤 흐름으로 구현될 것인지,어떤 방식..

1. 의문점 @GetMapping("user") fun user(authentication: Authentication): OAuth2User { val token = authentication as OAuth2AuthenticationToken val user = token.principal return user } 스프링 시큐리티를 사용할 때, Authentication 객체를 컨트롤러에서 바로 바인딩받아 사용할 수 있다.그런데 이 Authentication 객체는 어떻게 주입되는걸까? 2. 디버거로 찾기: 어느 HandlerMethodArguemntResolver가 작동했을까? 컨트롤러의 파라미터 바인딩 동작 확인은 어떤 HandlerMetho..

이번 글에서는 Gradle에서 변수를 buildSrc 폴더에 모아두고 빌드 스크립트에서 사용할 수 있도록 해보겠다. 환경- 필자는 Kotlin 사용, JDK는 21을 사용하고 있으나 그 이전 버전을 사용해도 무방- IntelliJ Ultimate (Community 버전을 사용해도 무방) buildSrc 폴더 생성, build.gradle.kts 생성plugins { `kotlin-dsl`}repositories { mavenCentral()} 프로젝트 루트 경로에 buildSrc 폴더를 생성한다.이곳에 build.gradle.kts 파일을 추가한 뒤 위 스크립트를 작성하자. gradle 공식문서의 설명에 따르면, gradle은 buildSrc 디렉터리를 발견하면 이 코드를 자동으로 컴파일 및..
자바, 순수 코틀린 문법을 사용하다보면 스프링 시큐리티 필터체인을 작성할 때 다음과 같이 작성해야한다. @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests((authorize) -> authorize .requestMatchers("/login").permitAll() .anyRequest().authenticated() ); return http.build(); } 물론 이것도 괜찮긴 한데... 람다 표현식을 체이닝을 통해 넣어주는 식이기도 하고 가독성이 썩 좋지는 않다.import org.springframework.se..
dependencies { // spring security implementation("org.springframework.boot:spring-boot-starter-security") testImplementation("org.springframework.security:spring-security-test") } gradle의 경우 buiild.gradle 또는 build.gradle.kts maven의 경우 pom.xml 파일에 스프링부트 시큐리티 의존성을 추가 해보면 여러가지 일들이 일어난다. 이를 가장 정확히 설명하는 문서는 스프링 시큐리티의 공식 문서의 getting-started - Runtime Expectations 단락에 있다. 여기선 간단하게 당장 개발하면서 체감할 수 있는 내용만..

[GKE] Google Kubernetes Engine (GKE) 시작하기 글에서 이어집니다. 이전 글에서, 구글 클라우드 플랫폼 상에서 쿠버네티스 클러스터를 실행하는 것을 다뤄봤습니다. 클러스터에 접근하여 애플리케이션을 배포해보겠습니다. Cloud Shell 에서 클러스터 연결 우선 우측 상단에 보이시는 Cloud Shell 활성화 버튼을 누릅니다. 아래에 터미널이 활성화되고 명령을 입력할 수 있습니다. 지금 우리가 접속한 쉘은 클러스터와 별도로 존재하는 VM에 위치해있다는 점에 주의합시다. 이제 우리가 아까 만든 클러스터에 원격으로 접근할 수 있도록 해야합니다. 클러스터 페이지의 우리가 만든 클러스터를 선택하고, 연결 버튼을 클릭합니다. 명령줄을 통해 우리 클러스터에 연결하는 방법을 제공해주네요. C..

[GCP] Google Cloud Platform 시작하기 포스팅에서 이어집니다. 구글 클라우드 플랫폼의 무료체험을 시작하고, 프로젝트를 개설해둡시다. 쿠버네티스 엔진 API 활성화 우선 이전에 만들어 둔 프로젝트에 대해서, 쿠버네티스 엔진 API를 활성화해야합니다. 잠시 기다리다가 새로고침 해보면 쿠버네티스 클러스터 API가 활성화되네요! 쿠버네티스 클러스터 생성 쿠버네티스 클러스터가 활성화됐다면, 위에서 '만들기' 버튼을 눌러서 클러스터를 만들 수 있어요. 그런데 우측 상단에 보면 Standard 클러스터로 전환 또는 Autopilot 클러스터로 전환이 보입니다. 쿠버네티스 클러스터를 만드는 방법은 autopilot 방식, standard 2개로 나뉘는 것 같뉘는데, 이 두가지의 차이점에 대해서는 구..

저는 AWS 프리티어 기간이 만료된 상황에서 갖고놀 장난감 서버가 필요하던 상황입니다. 뭘 어떻게 해야할까 고민했는데... 바로 눈에 들어온 것은 구글이였습니다. 구글 클라우드 플랫폼 무료체험 시작 구글 클라우드 플랫폼 무료체험 시작 90일간 300달러 한도 내에서 무료 체험 가능합니다. 신용(체크)카드 등록이 필요하다. gmail 새로 만들어서, 등록 가능 콘솔에서 결제탭에 가보면 300달러 한도 내에서 90일간 사용가능한 것을 확인 가능합니다. AWS 프리티어와 달리 아직까지는 이메일 바꿔서 가입하면 무료 체험이 가능합니다... 킹갓 구글 형님들 감사합니다...!!! 프로젝트 생성 콘솔에 들어와서 새 프로젝트를 개설할 수 있어요. 프로젝트 이름은 고유하게 짓는 것을 권장하는데 이름-날짜-시간 을 나열..