0. 이 글을 작성하는 이유 코틀린에서 TODO가 재미있어 보여서 간단하게 정리하기 위함 1. TODO? 기존 JAVA에 익숙한 사람이라면 //TODO “impl sort logic” 같이 뭔가를 해야하는 것들에 대해 주석을 달아본 경험이 있을 것이다. Kotlin에서는 TODO라는 객체가 존재한다. 둘 다 IDE(Intellij 기준) Project의 TODO로 검색이 되는 것은 동일하다. 그렇다면 객체에는 어떤 내용이 있을까 2. TODO 객체 TODO는 2가지로 오버로드 되어있는데 단순히 에러를 던지는 메서드와 내용을 담아 던지는 메서드 2개가 있다. 이렇게 되면 상당히 직관적으로 TODO를 사용할 수 있게 된다. TODO(”이거 구현해야함”)을 넣은 경우 아직 구현되지 않은 것에 대해 NotImp..
분류 전체보기
0. 이 글을 작성하는 이유 평화로운 추석기간, 브런치 설정 관련해서 메일 인증을 하던 도중 이 메일 인증이라는 건 어떤 방식으로 구현되는지 궁금해지기 시작했다. 1. 내가 받은 인증 메일URL은 어떻게 생겼나 이렇게 생겼다.(일부 글자를 지워 정상적으로 변환이 안되게 만들었다.) https://brunch.co.kr/signin/verify?token=JM1DT1ouT%2BTVY%fgujdQy23Sf%2BN0fRtQ%3D%3D 브런치스토리 작품이 되는 이야기 brunch.co.kr 뒤에 token이라는 단어가 보인다. 이 token이라는 단어에서 당장 생각나는 건 JWT가 생각난다. JWT의 경우 토큰 만료 시간, 토큰 수신자, 고유 식별자 등을 넣을 수 있어 이 경우 사용하기 적합하다고 생각한다. 사..
0. 이 글을 작성하는 이유 HTTPS에 대해 너무 모르는 것 같아서 이 참에 정리하고 넘어가기 위함 1. HTTPS란? HTTP에 S가 하나 더 붙었다. S는 Securer Sockets Layer의 약자라고 되어있는데 보안 Layer가 하나 더 추가되어 있다고 생각하면 편할 것 같다. Securer Sockets Layer의 앞 글자를 따서 SSL이라고 하는데 현재는 Transport Layer Securty, TLS가 사용 중이다. 우리는 HTTPS를 통해 인증과 데이터 무결성을 보장할 수 있다. 2. SSL과 TLS? HTTPS에 대해 이야기를 하다 보면 SSL과 TLS라는 단어가 자주 보인다. 무엇일까? SSL과 TLS 모두 서버, 애플리케이션, 사용자 및 시스템 간의 데이터를 암호화하는 통신 ..
0. 이 글의 작성 이유 최소한으로 JWT토큰을 발급하고 사용자에게 전달하는 과정을 설명하기 위함 다음에 Spring Security를 이용한 보안 처리를 진행할 예정이어서 미리 대비해 둔 코드가 존재할 수 있다. no used가 발생해도 당황하지 말자. 같이 보면 좋은 글 : https://developer-youn.tistory.com/166 JWT 0. 이 글을 작성하는 이유 JWT에 대해 정말 엄청 겉핥기로만 알고 있어서 이번에 프로젝트에 적용을 하기 위해 알아본 내용을 정리하기 위함 1. JWT란? Json Web Token의 약자이다. 이름에서 유추해 보 developer-youn.tistory.com 이전 글 https://developer-youn.tistory.com/165 맨땅에서 뭐라..
0. 이 글을 작성하는 이유 JWT에 대해 정말 엄청 겉핥기로만 알고 있어서 이번에 프로젝트에 적용을 하기 위해 알아본 내용을 정리하기 위함 1. JWT란? Json Web Token의 약자이다. 이름에서 유추해 보면 Json형태로 된 Web에서 사용하는 Token이다. 우리는 이 Token을 가지고 인증 / 인가에 대한 처리를 할 수 있다. 2. JWT 구성 JWT는 크게 헤더(JOSE Header), 페이로드(JWS Payload), 서명(JWS Signature) 3가지 파트로 구성된다. 2-1. 헤더(JOSE Header) JOSE라는 단어가 생소하게 느껴질 수 있다. JOSE는 Javascript Object Signing and Encryption의 약자로 간략하게 설명하면 claim(payl..
0. 이 글의 목적 Kotlin으로 Entity를 만드는 것에 대해 기술한다. 1. Java에서 도메인은? 아 맞다. 우리는 상남자식 코딩답게 jpa를 사용할 수 있는 환경도 만들어주지 않았다. gradle을 추가해 주자. https://spring.io/guides/tutorials/spring-boot-kotlin/ Getting Started | Building web applications with Spring Boot and Kotlin Instead of using util classes with abstract methods like in Java, it is usual in Kotlin to provide such functionalities via Kotlin extensions. Her..
0. 이 글의 목적 코프링으로 뭐라도 하기 위해 장난하며 나오는 결과물을 정리하기 위함 1. 프로젝트 생성 실은 나는 IntelliJ Ultimate버전을 사용하고 있어서 아래 사진들로 정리가 가능하다. New Project -> Spring Initializr 여기서 Language는 Kotlin, Type은 Gradle - Kotlin을 고른다. Spring Boot의 버전은 최신으로 고르고 보통 여기서 Dependencies를 추가하겠지만 상남자답게 그냥 스킵한다. 만들어진 프로젝트를 바로 실행해 보자. 뭔가 에러가 없이 실행된 것 같은데 멈춘다. 생각해 보니 spring-boot-starter-web을 추가하지 않았다. 추가해 주자. implementation("org.springframework..
0. 이 글의 작성 목적 https://www.youtube.com/watch?v=92NizoBL4uA Redis에 대해 알아보다 이 영상이 너무 설명을 잘해주고 있어서 영상의 챕터별로 조금씩 정리해보고자 한다. 1. Redis 캐시 대부분 Redis를 캐시로 사용할 텐데 이 부분에 대해 잘 사용하는 방법에 대해 짚고 넘어가고자 한다. 우선 Caching이 무엇인지 다시 확인해 보자. Caching은 사용자 입장에서 데이터를 더 빠르고 효율적으로 액세스 할 수 있는 임시 데이터 저장소다. 이때 이 Cache가 유용하게 사용되려면 당연히 원본에 접근하는 것보다 Cache에 접근하는 게 더 쉽고 빨라야 한다. 또한 동일 데이터에 대해 반복적으로 접근하는 경우 사용하는 것이 좋다. 이 조건에 대해 Redis는..
0. 이 글을 작성하는 이유 ElasticSearch의 사용법을 알기 위해서는 어떤 구조로 이루어져 있는지 간략하게는 알고 가야 할 것 같아서 정리하기 위함 주요 참고 : https://www.youtube.com/watch?v=JqKDIg8fgd8 1. 파트 Index : Document의 집합으로 RDBMS에서의 Database에 해당함. Indices : ElasticSearch에서는 Index의 집합 Cluster : 독립된 ElasticSearch의 시스템 환경, Cluster가 여러 개더라도 서로 독립된 데이터를 가짐 Node : 실행 중인 ElasticSearch 시스템 프로세스 Document : 저장된 데이터 단위 Shard : Document들에 대한 색인과 검색을 진행하는 작업 단위 ..
0. 이 글의 목적 ElasticSearch8.9를 공식 문서를 토대로 설치하는 과정을 정리하기 위함 1. ElasticSearch 설치 환경 MacOS Docker iTerm 2. 설치 시작 https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html Install Elasticsearch with Docker | Elasticsearch Guide [8.9] | Elastic The container runs Elasticsearch as user elasticsearch using uid:gid 1000:0. Bind mounted host directories and files must be accessible by thi..