태그 목록
전체보기 (199)알고리즘(116)백준(115)ps(114)Spring(21)그리디(19)DP(19)구현(13)우선순위큐(10)브루트포스(10)Java(10)투포인터(9)이분탐색(9)BFS(9)자료구조(9)클린코드(8)정렬(8)수학(8)cleancode(7)다익스트라(7)문자열(6)JPA(6)스프링(5)백트래킹(5)JWT(5)SpringSecurity(5)해시맵(5)http(5)스택(5)JVM(4)세그먼트트리(4)redis(4)S3(4)Token(3)유니온파인드(3)다이나믹프로그래밍(3)SpringDataJpa(3)슬라이딩윈도우(3)그래프(3)트러블슈팅(3)플로이드와샬(3)시뮬레이션(3)DFS(3)mysql(2)토끼책(2)session(2)Proxy(2)네이버클라우드플랫폼(2)자바스크립트(2)https(2)MVC(2)mongodb(2)aws(2)그래프탐색(2)JPQL(2)해쉬맵(2)냅색(2)cookie(2)객체지향의사실과오해(2)profile(2)자바(2)엘레강트오브젝트(2)web(2)OSI(2)nodejs(2)ObjectStorage(2)transaction(2)DataJpa(1)webpack(1)인스타그램(1)offset(1)reverseproxy(1)CI/CD(1)error(1)Nginx(1)REST API(1)크루스칼(1)backup(1)Paging(1)filter(1)누적합(1)LocalDate(1)Embedded(1)트랜잭션(1)LinkedHashMap(1)비트마스킹(1)String(1)submodule(1)Group(1)rdb(1)JIT(1)StringBuffer(1)count(1)DOM(1)axios(1)utf8(1)encoding(1)LIS(1)SSL/TLS(1)TLS handshake(1)너비우선탐색(1)GC(1)파싱(1)html(1)garbageCollection(1)퀵정렬(1)@property(1)celancode(1)springCloudConfig(1)aof(1)에러(1)HashMap(1)Jasypt(1)filezilla(1)재귀(1)역추적(1)에라토스테네스의체(1)@ConfigurationProperties(1)countquery(1)servlet(1)객체지향(1)db(1)투포인트(1)이진탐색(1)vm(1)@RequestParam(1)writeValueAsString(1)metaspace(1)VO(1)CallByReference(1)Map(1)2021 KAKAO BLIND RECRUITMENT(1)프록시패턴(1)SSAFY(1)너비 우선 탐색(1)(1)B-tree(1)HandlerMethodArgumentResolver(1)보안(1)@MappedSuperclass(1)GoogleCloudPlatform(1)접근지정자(1)DTO(1)projection(1)git(1)perm(1)cors(1)클론코딩(1)sql(1)environment(1)바닐라js(1)(1)CallByValue(1)OOP(1)응용계층(1)ConstructorBinding(1)DNS(1)propagation(1)CodeDeploy(1)FowardProxy(1)ObjectMapper(1)쿠키(1)Request(1)Response(1)multer(1)TreeMap(1)플로이드-와샬(1)modelattribute(1)exist(1)lock(1)스위핑(1)전송계층(1)React(1)부분합(1)ProxyPattern(1)gitsubmodule(1)centos(1)트리(1)최소스패닝트리(1)GCP(1)StringBuilder(1)JOIN(1)조합(1)Springboot(1)B+TREE(1)정수론(1)DesignPattern(1)SOLID(1)네트워크(1)jsp(1)기하학(1)JavaScript(1)분할정복(1)cursor(1)pagination(1)소수판정(1)JAVA8(1)
post-thumbnail

락을 이용한 동시성 제어에서 트랜잭션 전파 속성 주의점

레디스를 이용한 스핀락을 사용시 트랜잭션 전파 속성에 관련해 주의해야할 점을 나름대로 정리했습니다.상위 레벨과 하위 레벨의 트랜잭션을 별개로 가져가야한다.→ 락을 거는 트랜잭션과 비즈니스 로직을 수행하는 트랜잭션을 분리해야한다.이유 - 하나의 락을 거는 트랜잭션과 비즈

2022년 11월 14일
·
0개의 댓글
·
post-thumbnail

Redis의 백업(RDB, AOF) 알아보기

Redis는 인메모리 데이터 저장소로 읽기 성능이 뛰어나 캐싱, 세션 저장소, RefreshToken 저장소 등 다양한 곳에 많이 사용됩니다.인메모리 데이터 저장소가 가지는 휘발성의 특성 때문에 종료되는 경우 데이터가 유실되게 됩니다. 이 단점을 Redis에서는 AOF

2022년 10월 26일
·
0개의 댓글
·
post-thumbnail

B-Tree에 대해서 알아보자

노션에 B-Tree에 대해 정리해놨던 글을 옮겼습니다!탐색 성능을 높이기 위해 고안된 트리의 한 종류로, 모든 leaf node가 같은 depth를 가지는게 특징인 균형잡힌(Balanced) 트리입니다.인덱스를 구성할 수 있는 자료구조는 Hash Table과 B+Tre

2022년 9월 29일
·
2개의 댓글
·
post-thumbnail

CodeDeploy에서는 왜 환경변수가 안 불러와져?

프로젝트 진행 중 CI/CD 환경 구축을 위해 CodeDeploy를 사용하던 중 쉘 스크립트로 JAR 실행 시 환경 변수를 사용하고 싶었는데 환경 변수가 읽어지지 않는 문제가 발생했습니다. 이 문제를 어떤 관점에서 바라보았고, 어떻게 해결했는지 공유합니다~CodeDep

2022년 9월 6일
·
0개의 댓글
·
post-thumbnail

환경별로 Cookie 설정을 유연하게 해보자

프로젝트 진행 중 Cookie 설정을 환경별로 매번 바꿔야하는 번거로움이 있었습니다. 이 문제를 어떻게 바라보고 어떻게 해결했는지에 대한 글 입니다.Property를 환경별로 유연하게 바인딩해 사용해봤습니다현재 프로젝트에서는 HTTPS 설정과 Secure Cookie를

2022년 9월 3일
·
0개의 댓글
·
post-thumbnail

@AuthenticationPrincipal 커스텀해서 사용하기

이전에 프로젝트 진행 중 @AuthenticationPrincipal을 사용 중 @AuthenticationPrincipal을 커스텀해서 사용해야하는 문제가 있었고 어떻게 해결했는지를 공유합니다.@AuthenticationPrincipal로 Principal 객체 사용

2022년 9월 3일
·
0개의 댓글
·
post-thumbnail

SOLID 5원칙에 대하여

객체지향 설계에서 SOLID 5원칙을 빼놓을 수 없는 것 같습니다. 해당 글은 예전에 공부할 때 써놓았던건데 올리는걸 깜빡하고 있었습니다..! 다양한 글들을 읽어보고 제 방식대로 요리조리 한번 생각해본 SOLID 5원칙 입니다.하나의 모듈은 한 가지 책임을 가져야 한다

2022년 8월 25일
·
2개의 댓글
·
post-thumbnail

HashMap vs TreeMap vs LinkedHashMap

HashMap은 key의 해쉬값을 토대로 배열에 값을 저장합니다.table의 사이즈 - 1과 key의 해쉬값을 & 연산한 인덱스에 value를 저장합니다.(테이블의 크기는 필요시 동적으로 변합니다)해쉬값을 통해 값을 저장하므로 순서는 유지되지 않습니다.table의 0번

2022년 7월 10일
·
0개의 댓글
·
post-thumbnail

Offset Paging vs Cursor Paging

페이징이란?종류오프셋 페이징OffSet : 어디 부터 시작해서 가져올것인지?Limit : 몇개를 가져올 것인지?보통 offset 페이징은 프론트 엔드에서 이렇게 표현됩니다. 페이지 버튼과 함꼐 쓰이며 버튼을 클릭함으로써 페이지를 휙휙 넘길 수 있습니다.커서 페이징Cur

2022년 7월 7일
·
0개의 댓글
·
post-thumbnail

Git submodule로 민감정보 안전하게 관리하기

민감한 정보들을 private하게 관리하는 방법 중 .bash_profile을 설정을 통해 시스템 환경 변수를 사용하는 방법이 있습니다. 이 방법은 각각의 팀원 마다 운영체제 환경이 다를 수 있고, 또 시스템의 전체 환경변수를 건들이는 것으로 다른 프로젝트, 다른 프로

2022년 7월 7일
·
0개의 댓글
·
post-thumbnail

환경별로 Profile 분리하기

저희 프로젝트에서는 네 가지 Profile로 나눕니다.real - 실제 배포 환경의 Profile 입니다.dev - 개발 환경의 Profile 입니다.local - 로컬 환경의 Profile 입니다.mem - In-memory 환경의 Profile 입니다.아래 코드 블

2022년 7월 7일
·
0개의 댓글
·
post-thumbnail

Spring Boot Profile Grouping

local : 로컬 환경이고 MySQL DB를 사용한다.dev : 서버 환경이며 클라우드 서비스의 DB를 사용하거나 팀원들이 공용으로 사용할 수 있는 DB를 사용한다. 배포 전 QA를 수행한다.test : 테스트 환경이며 로컬 H2 DB를 사용한다.prod : 실제 배

2022년 7월 7일
·
0개의 댓글
·
post-thumbnail

Jasypt로 설정 암호화 하기

Jasypt는 public한 곳에 애플리케이션을 배포할 때 DB 계정이나 중요 비밀 키 값들이 평문으로 그대로 저장되어 올라가는 것을 막기 위해 프로퍼티를 간단하게 암호화할 수 있는 라이브러리입니다.의존성 추가Bean 설정 encryptor.key를 환경 변수로 등록

2022년 7월 7일
·
0개의 댓글
·
post-thumbnail

Spring Cloud Config로 프로퍼티를 외부 서버에서 관리하기

Spring Cloud Config는 분산 서버 환경에서 사용될 일관된 서버의 설정이나, 각종 비밀키, Secret, I AM 정보 등 민감한 정보들을 서버내에서 관리하는 것이 아닌 외부에서 관리할 수 있도록 지원해주는 라이브러리다.Github Repository를 준

2022년 6월 28일
·
0개의 댓글
·
post-thumbnail

Yaml의 Property를 Class로 바인딩 해보자

.yaml 파일의 프로퍼티들을 불러와서 사용하고 싶을 때가 있다.예를 들어 JWT의 header, 토큰 이름, 유효기간 등등... 어떻게 클래스에 바인딩을 해주는지 알아보자.제가 사용할 프로퍼티들은 다음과 같이 계층구조를 이루고 있습니다.Security 설정에 관한 프

2022년 6월 27일
·
0개의 댓글
·

JWT Filter구현과 리프레쉬 토큰 적용 해보기

현재 진행하는 팀프로젝트에 적용할 JWT에 대해서 알아보고 적용해봅니다.이 포스팅에서는 구현에 대한 세세한 코드를 모두 보여드리진 않습니다. JWT를 사용하고자 하지만 Refresh Token을 아직 사용해보지 못했거나 로직의 흐름을 이해하지 못한 사람들을 위해 로직의

2022년 6월 20일
·
0개의 댓글
·

엘레강트 오브젝트 - 3.3~3.5.1

NULL을 허용하지말라는 얘기는 클린코드에서도 나온다. 하지만 여기서 NULL을 사용하지말라고 하는 것은 조금 더 객체 지향적인 관점에서 NULL을 허용하지 마라고 하는 듯한 느낌이 들었다.객체 지향 패러다임에서는 객체에게 책임을 묻는다. 하지만 NULL을 사용할 경우

2022년 6월 20일
·
0개의 댓글
·
post-thumbnail

Deprecated된 WebSecurityConfigurerAdapter, 어떻게 대처하지?

스프링 버전이 업데이트 됨에 따라 WebSecurityConfigurerAdapter와 그 외 몇 가지들이 Deprecated 됐습니다.스프링에서는 다른 방식으로 시큐리티 설정을 권장하고 있는 듯 해보였는데요. 방식이 바뀐 탓에 시큐리티 설정에 어려움을 겪었고 제가 사

2022년 6월 20일
·
2개의 댓글
·

[작성 중] SonarQube 알아보기

SonarQube란? 다양한 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 수 있도록 코드 분석을 자동으로 해주는 정적 코드 분석 도구다. 중복 코드, 코딩 표준, 유닛 테스트, 코드 커버리지, 코드 복잡도, 주석, 버그 및 보안 취약점의 보고서를 제공해

2022년 6월 14일
·
0개의 댓글
·

트랜잭션 격리 수준 알아보기

트랜잭션이란 더 이상 쪼갤 수 없는 업무 처리의 최소 단위이다.데이터베이스에서는 DB 데이터 변경 시 변경 내용들을 하나의 작업단위로 묶고 이 단위를 트랜잭션이라고 부른다.트랜잭션이 하나의 작업 단위라고 앞서 언급했다. 그렇다면 작업 도중 오류가 발생한다면? 작업을 취

2022년 6월 9일
·
0개의 댓글
·