본문 바로가기

전체 글

(148)
[DB] Index 1 -Use The Index, Luke ! Reference본 글은 Use The Index, Luke 의 내용을 요약 정리한 글입니다.https://medium.com/@hnasr/postgres-vs-mysql-5fa3c588a94e Postgres vs MySQLThe fundamental difference between the two popular databasesmedium.comhttps://use-the-index-luke.com/sql/anatomy Anatomy of an SQL Index: What is an SQL IndexWhat does an index look like and how does it work? Learn about the B-tree, why an index doesn’t get unbalanced but..
[Git] Git Rebase 실제 적용기 : 충돌을 해결 할 준비가 되었습니까 ? 회사에서 작업하다가.. Rebase 할 일이 있었어서, 그 과정을 기록해보려고 한다. 현재 브랜치 상황원래 dev에서 모든 작업브랜치를 따서 진행dev → ORDER-93 브랜치 생성 후 작업ORDER-93 작업 완료 후, ORDER-93 -> dev로의 PR 생성 (머지는 아직 X)ORDER-93 에서 ORDER-98 브랜치 분기 후 작업 이렇게 하게 된 상황 원래라면 ORDER-93 브랜치가 dev로 머지 된 이후에 ORDER-98 브랜치를 dev에서 분기 해서 작업하는데.. 코드 리뷰 때문에 ORDER-93 브랜치 -> dev 브랜치로의 머지가 늦어져 작업 바로 불가능해서 바로 작업하려고 이렇게 했다. 그런데 생긴 문제dev → ORDER-93 브랜치 생성 후 작업ORDER-93 작업 완료 후,..
[Java] Time에 관한 여러 클래스 정리 회사에서 작업하다가 Time에 관한 여러 클래스들이 여러가지 사용되어 있는 걸 봤다.이번 기회에 Time 관련된 클래스들 한번 정리하고 넘어가려고 한다. 1. Instant"절대 시점"을 UTC로 나타내는 가장 순수한 타입내부적으로 Epoch Time (1970-01-01T00:00:00Z 이후의 초)을 사용한다.항상 UTC 기준이다.타임존이 없다.Instant now = Instant.now(); // 2025-07-04T12:00:00Z장점: DB 저장용, 타임존 간 연산 시 기준점으로 사용할 수 있다.주의: 시간대 표시가 필요할 때는 변환해서 사용해야 한다.JVM 설정을 KST로 해두면 Instant 객체가 한국 시간 기반으로 될까 ?-> ✖️, Instant는 항상 UTC 기준 ! 영향을 받는 것..
속도는 AI, 방향은 개발자 : 기본기를 지키는 이유와 8월 계획 개발자 친구들이랑 AI 얘기를 하다 보면 결론은 늘 같다.“어차피 AI의 코딩 실력을 따라잡을 수 없으니, AI로 코딩 해야 한다.” 맞는 말이다.그게 생산성과 효율을 높이는 길이라는 것도 안다. 근데… 나는 코드 전부를 AI한테 맡기고 수정만 하는 개발자가 되긴 싫었다. (나중은 모르겠다. 일단 지금은 그렇다.)내 뇌를 직접 굴리고, 판단하고, 고민하면서 만드는 걸 놓고 싶지 않았다. 왜 나는 AI에 의존하기 싫을까? 곰곰이 생각해보니, 이유는 간단했다.스스로 아직 기본기가 엄청 깊지 않다고 느끼기 때문.그래서 계속 혼자 코드를 짜고, 직접 부딪히며 배우고 싶었던 거다. AI 시대에도 기본기가 필요한 이유 AI는 이미 속도와 정확도에서 인간을 넘어섰다.그렇지만 여전히 사람만 할 수 있는 영역이 있다. ..
[코테 TIL#17] 프로그래머스 푸드 파이트 대회 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이import java.lang.StringBuilder;import java.util.Stack;class Solution { public String solution(int[] food) { StringBuilder answer = new StringBuilder(); Stack stack = new Stack(); for(int i = 1; i  정방향으로 한번 담고 그..
[TIL#47] DDD Layered Architecture 에서 서비스 로직과 도메인 로직의 분리 (cf. 3 Tier - Architecture) 원래는 모놀리식으로만 프로젝트를 개발했어서 3계층 아키텍처만 적용하다가 최근에 여러 MSA 프로젝트를 개발하다보니 기존과는 다른 설계와 패턴의 필요성을 느꼈었다. 그러다가 MSA에 적합한 DDD를 적용하여 설계를 하게 되었다. (DDD에 대한 개념과 실제 설계 과정은 추후에 정리해서 블로그에 올릴 예정이다.) DDD에 Hexagonal Architecture, Clean Architecture, CQRS 등 다양한 아키텍처들을 적용할 수 있는데 일단 가장 기본이 되고 3계층 아키텍처와 비교했을 때 적용하기 쉬운 Layered Architecture 먼저 도입해보기로 하였다. Layered Architecture (4계층 아키텍처)를 공부하다가 Layered Architecture가 왜 필요한지, 핵심 원..
[코테TIL#16] 프로그래머스 가장 가까운 같은 글자 처음 풀이import java.util.ArrayList;import java.util.List;import java.util.Objects;class Solution { public int[] solution(String s) { int[] answer = new int[s.length()]; String[] str = s.split(""); String start = str[0]; answer[0] = -1; for(int i = 1; i -1; j--) { gap += 1; if(Objects.equals(str[i], str[j])) { fl..
[TIL#46] Redis 특징과 사용 이유 / 타입에 따른 명령어 정리 RedisKey - Value NoSQL Database메모리(인메모리) 상에 데이터를 저장데이터 변경이 잦은 기능을 다룰 때 많이 사용리더보드, 방문자 트래킹세션 클러스트링캐싱  NoSQL Database 언제 사용할까 ?NoSQL Database는 데이터를 저장하는 형식이 정해져 있지 않기 때문에 형태가 매우 다양하다.일관성을 포기하는 대신 확장성과 유연성을 높인다.데이터가 방대할 때 사용한다.비정형 데이터가 많을 때 사용한다.  NoSQL Database 예시Redis : key - valueMongoDB : document(json)cassandra : column Family  Redis 설치원래는 Redis를 Local에서 설치해서 사용했었는데 Window Local에 설치하는 건 3.xx 버..