태그 목록
전체보기 (845)알고리즘(160)프로그래머스(64)파이썬 알고리즘 인터뷰(61)DP(37)자바(36)백준(29)다시 풀 알고리즘(29)CMPT 454(29)부스트코스(27)데이터 베이스(23)DFS(20)sql(17)백트랙킹(15)스택(14)OS(12)Linear Programming(11)운영체제(11)BFS(11)트리(11)math 308(11)데이터베이스(10)그리디(10)투포인터(9)이분탐색(8)html(8)CSS(8)다익스트라(7)(6)재귀(5)브루트포스(5)JDBC(5)링크드리스트(5)정렬(5)BST(4)문자열(4)스프링(4)비트 연산(4)Spring(4)우테코(3)슬라이딩 윈도우(3)(3)servlet(3)git(3)파이썬(3)cmpt454(3)구현(3)트라이(3)시뮬레이션(3)플로이드-와샬(3)B+ 트리(2)스트림(2)그리디 알고리즘(2)StringBuilder(2)쿠키(2)세션(2)불변(2)트리DP(2)트리 DP(2)조합(2)연결리스트(2)프로세스(2)네트워크(2)StringBuffer(2)유니온 파인드(2)LRU(2)REST(2)람다(2)jsp(2)해시(2)분할 정복(2)String(2)완전탐색(2)스레드(2)데드락(2)http(2)이진 검색(2)레디스(2)위상정렬(2)누적합(2)캐시(2)(2)유니언 파인드(2)클로저(2)캐싱(1)https(1)final(1)빌더패턴(1)LomBok(1)DTO(1)해시 테이블(1)jdbc template(1)동기화(1)페이징(1)가상메모리(1)JVM(1)컴파일(1)utf8(1)객체지향의 사실과 오해(1)최소공배수(1)싱글스레드(1)try catch(1)Log4j(1)GITHUB-FLOW(1)증명(1)Semaphore(1)부하테스트(1)eval(1)다중상속(1)controlleradvice(1)이진 탐색(1)클러스터링(1)해쉬테이블(1)Unchecked Exception(1)Checked Exception(1)직렬화(1)파라메트릭 서치(1)nGrinder(1)버블소트(1)와일드카드(1)클러스터(1)선언형(1)레플리카(1)멀티스레드(1)후위표기식(1)레이어드 아키텍쳐(1)바이트코드(1)롬복(1)이중화(1)로드밸런스(1)정수론(1)lua(1)책 추천(1)런너(1)머스테치(1)분리 집합(1)균형 이진 트리(1)언젠가는 봐야할 책/ 강의(1)네덜란드 국기 문제(1)해밍 거리(1)래퍼클래스(1)중위순회(1)전위순회(1)후위순회(1)이진변환(1)swap memory(1)최소간선트리(1)스레드풀(1)원형dp(1)스왑(1)마스터(1)냅색(1)방어적 복사(1)동적배열(1)맵 정렬(1)Caffeine(1)envers(1)@ExceptionHandler(1)동적언어(1)정적언어(1)자동 주입(1)Collections.EMPTY_LIST(1)매직 넘버(1)NullPointerExceptoin(1)문자열 로그(1)ignoringFields(1)usingRecursive(1)containsExactly(1)로컬 캐시(1)ULID(1)슬레이브(1)카페인(1)주생성자(1)스왑 메모리(1)Strong References(1)swap file(1)병합 정렬(1)분산락(1)DAO(1)MST(1)쓰레드(1)테스트 코드(1)자바스크립트(1)JavaScript(1)투 포인터(1)comparator(1)velog(1)의존성(1)함수형(1)생산성(1)Nginx(1)JWT(1)팰린드롬??(1)ORM(1)객체지향(1)JPA(1)Springboot(1)async(1)비동기(1)xor(1)mac(1)크루스칼(1)무중단 배포(1)redis(1)제네릭(1)디자인 패턴(1)동적계획법(1)IntelliJ(1)uuid(1)Serializable(1)CQRS(1)피보나치(1)di(1)window(1)배열(1)count(1)ajax(1)디자인패턴(1)계획(1)전략패턴(1)logger(1)log(1)프림(1)DDD(1)maven(1)예외처리(1)이진 탐색 트리(1)node.js(1)swap(1)JetBrain(1)정적 팩토리 메서드(1)logback(1)csrf(1)캐쉬(1)대칭키(1)불변객체(1)비대칭키(1)extend(1)구간합(1)AssertJ(1)Log4J2(1)optional(1)GC(1)let(1)var(1)이중우선순위큐(1)Cache(1)미디어쿼리(1)해시테이블(1)DEVIEW(1)싱글톤(1)JOIN(1)synchronized(1)MVC(1)gitflow(1)serial(1)프리코스(1)호이스팅(1)빌드(1)정규식(1)
post-thumbnail

개발 생산성

find actions > view pull requests > github enterprise 에 로그인로그인을 위해선 personalize token 생성해주면 됨.https://github.tossinvest.bz/settings/tokens생성한 토큰을

6일 전
·
0개의 댓글
·
post-thumbnail

개발자 1년차 회고

우테코를 수료하고 개발자로 취업한지 만으로 1년이 됐다. 매일 교육장으로 향하다 다른 방향의 지하철을 타고 혼자서 회사를 가던 날이 떠오른다. 그때의 날씨, 온도가 되니 1년이 지났구나 하는 것을 느끼게 된다. 회사에서도 "오신지 1년밖에 되셨어요? 2년은 넘은 것 같

2023년 10월 28일
·
1개의 댓글
·

비개발 독서 예정 목록

회복력 시대예정된 전쟁자본주의와 자유 (밀턴 프리드먼)승자독식 사회 (필립 쿡)불편한 진실 (엘고어)어떻게회사에서 오래 살아남는가 (필 포터)우리는 어떻게 여기까지 왔을까(스티븐 존슨)죽음의 수용소에서나는 왜 너를 사랑하는가니체의 말철학이 필요한 시간로마인 이야기

2023년 10월 21일
·
0개의 댓글
·

스프링 어플리케이션 이벤트

가위바위보 이벤트를 하면서 푸시를 보낼일이 많이 생겼다. 예를 들어 가위바위보에 승리하고 나면 1승을 추가로 하면 또 다른 무언가를 얻을 수 있다고 푸시를 보낸다. 처음에는 이런 것들이 그렇게 많지 않아서 코드에서 직접적으로 푸시를 보내는 코드를 추가했었다. 하지만 이

2023년 6월 11일
·
0개의 댓글
·

100만 데이터 마이그레이션 경험 (feat. Zset)

가위바위보 이벤트가 생각보다 잘되었고, 이걸 조금 더 개선해보는 아이디어 중 하나가 가위바위보 몇등을 했는지를 보여주는 리더보드를 만드는 것이었다. 랭킹을 보여주려면 레디스의 zSet을 쓰면 된다고 생각했다. 하지만 문제는 과거 데이터까지도 다 반영해서 랭킹을 보여줘야

2023년 5월 29일
·
0개의 댓글
·
post-thumbnail

[NHN FORWARD 2021] Redis 야무지게 사용하기 정리

https://www.youtube.com/watch?app=desktop&v=92NizoBL4uA가장 일반적으로 쓰이는 전략이다. 캐시에서 먼저 확인하고 있으면 가져온다. 없으면 DB에서 가져와서 레디스에 저장한다. lazy loading이라고도 부른다. 레

2023년 5월 3일
·
0개의 댓글
·

(A, B)와 (B, A)에 유니크 제약 조건 걸기

가위바위보 이벤트를 만들면서 재밌는 문제가 있었고, 다른 분들의 도움으로 해결할 수 있었다. 그 문제와 해결 과정이 재밌었다. 우선 가위바위보 이벤트는 다른 사람에게 링크를 보내서 링크를 받은 사람이 경기에 참여함으로서 두 사람이 가위바위보를 하게된다. 여기서 제약 조

2023년 5월 1일
·
0개의 댓글
·
post-thumbnail

Redis - 레디스 클라이언트와 분산락, 루아스크립트

레디스 클라이언트는 레디스 서버에 연결하여 레디스 데이터 구조를 조작할 수 있게 해준다. 서버 개발자는 cli가 아닌 코드 상에서 레디스에 접근해서 데이터를 다룰 수 있어야 한다. Java용 Redis 클라이언트 라이브러리로는 Lettuce, Redisson, Jedi

2023년 4월 17일
·
0개의 댓글
·

Redis - 자료구조 및 캐시

기본적으로 hash table을 사용해서 데이터를 저장하고 조회한다. SET key value : 키(key)에 값(value)을 저장합니다.GET key : 키(key)에 저장된 값을 반환합니다.GETRANGE key start end : 키(key)에 저장된 값을

2023년 4월 16일
·
0개의 댓글
·
post-thumbnail

Redis - 개념 및 아키텍처

Redis는 REmote Dictionary Server를 https://redis.io/docs/about/http://redisgate.kr/redisgate/ent/ent_intro.php

2023년 4월 16일
·
0개의 댓글
·

배포를 우아하게 하는 법

현재 팀의 특성상 기존 코드에 새로운 기능을 덧대는 일보다는 항상 새로운 기능을 만들고 나가는 일이 많았다. 하지만 이번에는 기존 코드가 조금 변경되어 기능이 나갔는데, 기존 기능과의 하위 호환성을 고려하지 않고 배포가 나갈뻔 했다. 배포를 할 때는 서버/프론트의 배포

2023년 3월 6일
·
0개의 댓글
·

스프링 빈 List로 주입 받기

내가 주로 담당하는 기능들은 이벤트로 무료 주식을 나눠주는 기능이다. 그런데 이 무료 주식들에 대해 취소해달라는 CS가 생각보다 많이 들어온다 (소수점 주식을 보는게 거추장스럽거나, 다른 증권사 직원들인 경우). 이 CS 때문에 컨텍스트 스위칭도 자주 발생하고, cs

2023년 2월 20일
·
0개의 댓글
·

Batch Job 경험에서 배운 것들

작성 이유 회사에 들어오고 3주차였나 4주차였나 처음으로 냈던 에러가 batch job 관련 된 것이었다. 30만명을 대상으로 푸시 / 알림을 발송하는 기능이었는데 아침에 모니터링을하며 로그를 보니 2명에게만 발송되었다 (꿈인줄 알았다). Batch를 정말 Batch

2023년 1월 4일
·
2개의 댓글
·

엔티티 이력을 저장해주세요, envers 간단 사용기

현업에서의 개발은 학습 목적의 개발과 차이가 난다고 느껴지는 몇몇 포인트가 있다. 그런 것들 중 하나가 운영을 위한 코드나 기능들이 들어가야할 때가 있다는 점이다. 이번에도 주식 예언과 관련된 이벤트를 만들다가 사용자들의 데이터 변경 히스토리들을 다 저장해서 나중에 필

2022년 12월 30일
·
1개의 댓글
·

캐싱 전략

캐싱이라는 것이 그냥 얼마나 캐싱할지 시간만 잘 걸어두면 되는거라고 생각을했다. 하지만 뭐를 키를 뭐로 잡을 것인지, 데이터가 변경이 일어났을 때 원본 데이터와 동기화를 어떻게 맞출 것인지 등 고려할 것이 많았다. 그래서 이번에는 이론적인 것보다는 경험으로 배운 것들을

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

Caffeine Cache (로컬 캐시) 적용하기

Github repo 학습 배경 프로젝트 코드들을 보다가 캐시가 적용되어 있는 부분들이 있었다. 재밌는 점은 레디스를 이용해서 캐시를 이용한 부분도 있었고 로컬 캐시를 이용한 부분도 있었다. 로컬 캐시 중에서도 Caffeine Cache가 적용되어 있어서 간단하게 써

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

코틀린 자동차 경주

1. val, var private val은 자바의 프로퍼티와 동일하다. 2. 생성자 3. init 4. object 5. 바로 fun 6. companion object 7. 인터페이스와 구현체 8. data / eqhc 9. private set

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

우테코 회고

예상보다 조금 빠르게 우테코를 떠나게 됐다. 우테코 과정을 되돌아보고 잘했던 것과 못했던 것들을 짚어보면 새로운 시작에도 도움이 될 것 같다. 딱 작년 이맘때 쯤 우테코에 지원을 했고 우테코에 합격하고 나서도 갈지 말지 되게 고민을 많이 했다. 취업을 목적으로 하던 공

2022년 10월 23일
·
20개의 댓글
·
post-thumbnail

[주간회고] 우테코 37주차 회고 - 최종 데모데이

마지막 데모데이를 위한 한 주였다. 레벨 4 초반에는 나를 포함해서 뭔가 팀이 프로젝트에 집중하지 못한다는 느낌을 받았다. 그래서 레벨 3 때 그 재밌는 느낌이 나지 않았다. 레벨 4 중반부터 새로운 기능들이 생기고 다시 사용자가 늘면서 점점 몰입을 할 수 있었다. 데

2022년 10월 22일
·
2개의 댓글
·

DB Replication 2

이전 글에서 Replication 원리와 아키텍처에 관해 다뤘다. 이제 실제 어떻게 진행했는지 정리한다. 레플리카 서버에서 소스 서버의 바이너리 로그 파일명과 파일 내에서의 위치(Offset 또는 Position)로 개별 바이너리 로그 이벤트를 식별해서 복제가 진행되는

2022년 10월 22일
·
0개의 댓글
·