profile
선명한 삶을 살기 위하여
태그 목록
전체보기 (108)개발자취업(42)코딩테스트준비(42)항해99(42)TIL(42)99클럽(41)노마드코더(17)Java(12)python(10)웹스크래퍼(9)reactjs(8)리눅스마스터(6)파이썬(5)Springboot(5)Spring(4)linux(4)프로그래머스(4)indeed(3)docker(3)알고리즘 기초(3)백엔드(3)Backend(3)tomcat(3)Map(2)exception(2)devops(2)Flask(2)알고리즘(2)git(2)error(2)Database(2)최솟값 알고리즘(1)TROUBLESHOOTING(1)순위 알고리즘(1)requests(1)schema(1)DML(1)INSERT(1)OOP(1)boot does not exist(1)Tempo(1)List(1)Thread(1)stack(1)queue(1)kibana(1)elasticsearch(1)logback(1)선택정렬 알고리즘(1)react router dom(1)alertmanager(1)파일작성(1)connectionPool(1)파이썬 자료구조(1)sequence(1)jsessionid(1)coin tracker(1)Index(1)최댓값 알고리즘(1)유지보수(1)Auto Increment(1)security(1)wwr(1)DDL(1)redis(1)React(1)서브넷(1)캡슐화(1)옵저버빌리티(1)status code(1)router(1)input(1)다형성(1)최빈값(1)try catch finally(1)lvm(1)배열만들기2(1)병합 알고리즘(1)useEffect(1)PostgreSQL(1)TCL(1)indeed 스크래퍼(1)커밋삭제(1)레거시(1)네트워크(1)method(1)개수 알고리즘(1)selfinvocation(1)파일수정(1)반복문(1)Nginx(1)JWT(1)WAS(1)Converter(1)Cleanup(1)컨테이너(1)제어문(1)실무개발(1)debugging(1)duplicate key(1)리뉴얼(1)트랜잭션(1)페이지 크롤링(1)검색 알고리즘(1)aop(1)application(1)인터페이스(1)프린트명령어(1)movie app(1)실무(1)제네릭(1)파일디렉토리관리(1)architecture(1)데이터베이스(1)미러링(1)@Scheduled(1)State(1)HikariCP(1)성능(1)리팩토링(1)prometheus(1)to-do list(1)카운트업(1)최빈값 알고리즘(1)시그널(1)WAR배포(1)톰캣설정(1)리팩터링(1)깃랩(1)Logstash(1)JOB SCRAPPER(1)모니터링(1)잔디(1)패키지관리도구(1)웹 스크래퍼(1)배열 만들기4(1)kubernetes(1)근삿값 알고리즘(1)파일삭제(1)백엔드개발자(1)nosql(1)자바 알고리즘(1)상속(1)output(1)parameters(1)JSX(1)콜라츠수열(1)DCL(1)RDBMS(1)스케줄러(1)Generics(1)Grafana(1)스프링부트임포트오류(1)RAID(1)filebeat(1)객체재사용(1)기초(1)데비안(1)프록시패턴(1)등차수열(1)Props(1)깃허브(1)보안(1)레드햇(1)합계 알고리즘(1)평균 알고리즘(1)set(1)Beautiful Soup(1)중복실행(1)DTO(1)nextLine()(1)vscode(1)설계(1)session(1)function(1)Loki(1)React.memo(1)라우팅오류(1)수세(1)web(1)transactional(1)클러스터(1)추상화(1)

Docker에서 서브넷을 적용할 수 있을까?

기존 서비스는 Windows 서버에서 JAR 파일을 직접 실행하는 방식으로 운영되고 있었다. 서버가 자주 불안정했고, Windows 환경 특성상 운영 자체가 불편한 점이 많았다. 결국 리뉴얼을 결정하면서 Linux + Docker 환경으로 전환하기로 했다.전환을 준비하

2026년 4월 24일
·
0개의 댓글
·

실무에서 모니터링 스택 구축하기 (Prometheus + Grafana + Loki + Tempo)

사내 서비스를 운영하면서 장애가 발생했을 때 원인을 파악하는 데 너무 많은 시간이 걸렸다. 로그를 일일이 뒤지고, 어느 시점에 문제가 생겼는지 추적하는 것 자체가 고역이었다. 그러던 중 모니터링 수업을 듣게 됐고, Prometheus, Grafana, Loki, Tem

2026년 4월 24일
·
0개의 댓글
·

로그 파일이 두 군데 남는 이유 (Logback과 catalina.out의 관계)

평소에 로그를 볼 때 항상 이렇게 봤다.그러다 Logback 설정을 열어봤는데 파일이 여러 개였다."어? 그럼 catalina.out이랑 app.log가 같은 내용 아니야?"이 의문에서 시작했다.로그 파일이 여러 개 생기는데, 각자 역할이 다르다.AccessLogVal

2026년 4월 24일
·
0개의 댓글
·

DB 커넥션 풀은 어떻게 동작하는가 (HikariCP 내부 구조)

백엔드 개발하다 보면 한 번쯤 이런 상황 겪는다.“DB도 정상이고 CPU도 널널한데, 왜 API만 느리지?”이럴 때 의외로 많이 걸리는 게 커넥션 풀이다.나도 처음엔 maxPoolSize만 늘리면 해결되는 줄 알았는데, 구조를 이해하고 나니까 문제 보는 시선이 완전히

2026년 4월 1일
·
0개의 댓글
·

세션은 어떻게 유지되는가 (JSESSIONID의 역할)

웹 개발을 하다 보면 세션은 너무 당연하게 사용된다.로그인을 유지하고, 사용자 상태를 기억하는 데 필수적인 요소다.하지만 실제로 세션이 어떻게 동작하는지,특히 멀티 WAS 환경에서 어떤 문제가 발생하는지 이해하고 있는 경우는 많지 않다.이 글에서는 JSESSIONID를

2026년 3월 19일
·
0개의 댓글
·

auto increment인데 duplicate key 나는 이유

백엔드 개발을 하다 보면 한 번쯤 이런 에러를 보게 된다.auto increment인데 왜 중복이 발생할까?처음에는 DB가 자동으로 값을 잘 관리해줄 거라고 생각하기 쉽다.하지만 실제로는 그렇지 않다.결론부터 말하면시퀀스는 테이블 상태를 전혀 모른다.PostgreSQL

2026년 3월 19일
·
0개의 댓글
·

Spring @Transactional이 안 먹는 이유 (self-invocation 때문에 2시간 날린 썰)

Spring에서 @Transactional을 붙였는데분명 예외가 발생했는데도 롤백이 되지 않는 경험을 한 적이 있다.처음에는 MyBatis 문제인가 싶었고,DB 설정 문제인가 싶었고,격하게 삽질을 했다.결론은 단순했다.트랜잭션이 안 먹은 게 아니라, 프록시를 타지 않았

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

프로젝트 리뉴얼에서 DTO 설계 기준을 다시 잡은 이유

리뉴얼 프로젝트에 들어가기 전까지는DTO를 그저 DB 결과를 담는 그릇 정도로 생각했다.그런데 레거시 시스템을 유지한 채 구조를 바꾸는 대규모 리뉴얼을 겪으면서,DTO가 생각보다 훨씬 많은 역할을 하고 있다는 걸 체감하게 됐다.대규모 리뉴얼 프로젝트를 겪으면서 DTO

2026년 2월 3일
·
0개의 댓글
·

insert에서 객체를 재사용해도 될까?

실무에서 insert 로직을 작성하다 보면 이런 고민을 하게 된다.“어차피 값 몇 개만 바꿔서 한 번 더 insert 하는 건데객체를 새로 만들지 않고 재사용해도 되지 않을까?”결론부터 말하면 insert에서 객체 재사용은 피하는 게 맞다.특히 이력성·동의성 데이터라면

2026년 1월 6일
·
0개의 댓글
·

[Tomcat] war 중복 배포 방지 (스케줄러 중복 실행 문제)

로컬에선 문제 없던 스케줄러가 톰캣에 올리면 중복 실행되는 문제 발생했다.아래는 기존 server.xml 설정이다.톰캣이 실행되면 webapps안에 test 폴더와 ROOT 폴더가 생기는데,결과적으로 동일 WAR의 인스턴스가 중복 실행되어 @Scheduled 사용시 2

2025년 8월 6일
·
0개의 댓글
·
post-thumbnail

Filebeat > Logstash > Elasticsearch> Kibana로그 수집 시스템 구축 가이드

ElasticsearchKibanaLogstashFilebeat⛔ 종료 시에는 반대 순서로: Filebeat → Logstash → Kibana → Elasticsearch

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

[Docker] Nginx와 Tomcat 연결

Nginx 올리기docker run --name nginx -d -p 80:80 -p 443:443 nginx접속docker exec -it nginx /bin/bashconf 설정 (include 설정 추가)vi /etc/nginx/nginx.conf원하는 설정에 맞

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

[Linux] 클러스터 (Cluster) 개념 및 종류

여러 개의 독립적인 컴퓨터나 서버가 네트워크를 통해 연결되어 하나의 시스템처럼 작동하도록 구성된 시스템. 클러스터의 주요 목적은 성능 향상, 신뢰성 증대, 또는 두 가지 모두를 달성하는 것. 클러스터는 여러 형태가 있으며, 각 형태는 특정 용도와 요구 사항에 맞게 설계

2024년 9월 3일
·
0개의 댓글
·

[Linux] 시그널(signal) 종류

프로세스 간의 통신 방법 중 하나로 프로세스에 특정 이벤트가 발생했음을 알리기 위해 사용된다. 예를 들어, 시그널을 사용하여 프로세스에 종료, 중지, 일시 정지와 같은 다양한 명령을 전달할 수 있다.

2024년 9월 3일
·
0개의 댓글
·

[Linux] 프린트 명령어

💻 리눅스 프린터 명령어 | 명령어 | 설명 | 사용 예시 | 주요 옵션 | |---------|-------------------------------------|-------------...

2024년 9월 3일
·
0개의 댓글
·

[Linux] 패키지 관리 도구

인터넷을 통해 원격 저장소(리포지토리)에서 패키지를 다운로드하고 설치하는 방법원격 저장소 사용: 패키지 관리 도구가 인터넷에 연결된 저장소에서 최신 패키지 정보를 가져와 패키지를 설치, 업데이트, 제거한다.의존성 해결: 패키지를 설치할 때 필요한 다른 패키지(의존성)를

2024년 9월 2일
·
0개의 댓글
·

[Linux] LVM 개념 및 구성 요소

리눅스에서 디스크 관리의 유연성을 제공하는 시스템으로 물리적 디스크(Physical Volume, PV)를 그룹으로 묶어 하나의 논리적 볼륨(Logical Volume, LV)을 만들 수 있게 한다. 이 논리적 볼륨은 파일 시스템이 사용하는 공간으로, 물리적인 디스크의

2024년 9월 2일
·
0개의 댓글
·

[Linux] RAID 0~6 특징 및 용량 계산 방법

여러 개의 하드디스크를 결합하여 하나의 논리적인 디스크처럼 동작하게 하는 기술로 데이터의 성능, 안정성, 용량을 개선하기 위해 사용된다. RAID는 여러 수준(Level)으로 나뉘며, 각 수준마다 특성과 목적이 다르다.RAID 0가용 용량 = N × S손실 용량 = 0

2024년 9월 2일
·
0개의 댓글
·
post-thumbnail

99클럽 코테 스터디 42일차 TIL | Best Time to Buy and Sell Stock

You are given an array prices where pricesi is the price of a given stock on the ith day.You want to maximize your profit by choosing a single day to

2024년 9월 1일
·
0개의 댓글
·
post-thumbnail

99클럽 코테 스터디 41일차 TIL | N-th Tribonacci Number

문제를 해결하기 위해, 동적 계획법(Dynamic Programming)을 사용해 이전 결과를 활용하여 다음 값을 계산하는 반복문 방법을 선택했다.Tribonacci 수열의 시작점인 T0, T1, T2 값이 이미 정의되어 있으므로, 이들에 대한 기본 조건을 설정한다.

2024년 8월 31일
·
0개의 댓글
·