본문 바로가기
메뉴

전체 글39

[Spring Boot] DataSource & HikariCP 설정 정리

사이드 프로젝트를 시작했는데, application.yaml에서 db와 jpa관련 설정을 하다 자주 사용되는 설정들을 정리했다.jpa hibernate와 관련된 설정은 다음에 추가로 올릴 예정이다. DataSource 설정spring: datasource: url: jdbc:mysql://localhost:3306/db_name username: root password: password driver-class-name: com.mysql.cj.jdbc.DriverDB별 드라이버 클래스MySQL : com.mysql.cj.jdbc.DriverPostgreSQL : org.postgresql.DriverH2 : org.h2.DriverMariaDB : org.mariadb.jdbc...

이것이 자바다 - 5~6장

책을 읽으면서 새로 알게된 부분 / 추상적으로 알던 부분을 정리하려고 노력했다.CS를 잘 모르거나 자바를 진짜 처음보는 초심자에게는 책 내용 이해하기가 너무 힘들 것 같은데 기초...가 맞나? 싶다현재 시점에서 책을 보며 정리하기를 정말 잘했다고 생각한다.5장: 참조 타입JVM Runtime Data Area오라클 레퍼런스 - Run-Time Data AreasMethod Area클래스 로더에 의해 로드된 클래스/인터페이스 관련 메타데이터(바이트 코드, 시그니처, 런타임 상수 풀 등)가 저장됨모든 스레드가 공유HotSpot VM에서 Java 7까지는 PermGen, Java 8부터 Metaspace로 관리됨Run-Time Constant Pool : 컴파일 타임에 알려진 숫자 리터럴, 런타임에 해석되거나..

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 6, 7장

이번 장에는 책에서 반복적으로 다뤄지는 내용들이 많이 포함되어 있었다.6장. 동시성Java에서의 동시성 제어synchronized (모니터)Lock자바에 이렇게 락이 많은지 처음알았다. 아래말고도 더 있다LockReadWriteLockReentrantLockReentrantReadWriteLockStampedLock낙관적 읽기쓰기 락읽기 락Semaphore세마포어에서 퍼밋 획득 (P 연산 → wait)코드 실행퍼밋 반환 (V 연산 → signal)Atomic 타입들기본적으로 CAS(Compare And Swap) 방식으로 구현되어 있음(CAS를 이용한 Lock-Free 자료구조 만들어보기)DB와 동시성비관적 락 (선점 락)실패할 가능성이 높을 때 사용한다.트랜잭션이 select ~ for update 로..

나만의 티스토리 블로그 스킨 제작기

나만의 멋들어진 기술 블로그를 작성하고 싶어 2025년 6월부터 진행된 스킨 제작이 2026년 새해를 맞이하며 막을 내렸다.결과물의 90% 이상은 AI 에이전트를 이용해 개발했고, 자잘한 수정 사항만 직접 코드를 작성했다.SSAFY 방학 기간인 6월달에 cursor의 도움을 받으며 네비게이션바와 게시글 페이지 일부를 만들었는데, 이때는 지금의 AI보다 성능이 안좋았어서 결과물에 크게 실망해 열정이 파사삭 식어 1주일만에 프로젝트를 중단했다.SSAFY 2학기를 하며 적극적으로 프로젝트에 claude code, codex cli를 활용하며 프롬프팅 강의도 보고 많이 써보면서 결과물을 잘 뽑아내는 방법을 터득했고, 성능도 많이 좋아졌음을 체감해 SSAFY도 끝난 마당에 12월 마지막 주차동안 밤낮을 투자해 완..

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 5장

이번 주차에는 5장 하나만 나가기로 했다. 비동기 연동비동기 방식을 사용해도 되는 경우연동에 약간의 시차가 생겨도 문제가 되지 않음실패했을 때 재시도가 가능함실패했을 때 나중에 수동으로 처리 가능실패했을 때 무시해도 괜찮음비동기 연동을 구현하기 위해 아래에 5가지 방식 소개 별도 스레드로 실행Thread를 생성하는 방법java.lang.Thread를 이용해 스레드 객체를 직접 생성한다.// Runnable 함수형 인터페이스를 구현한 인스턴스를 파라미터로new Thread(**Runnable** instance).start();// 함수형 인터페이스 람다식으로 변경 가능new Thread(() -> code).start();스레드 풀 사용ExecutorService 를 이용각 워커 스레드는 OS 네이티브 ..

이것이 자바다 - 1~4장

지금까지 나는 언어를 책으로 공부해본 적이 없다. 백엔드 개발자를 희망하고 지금까지 스프링 부트 프로젝트를 진행해 왔는데, 자바 언어에 대한 깊은 이해를 한 적이 없어 2018년 혹은 2019년도에 산 책을 꺼내본다. 지금까지 코드 잘 작성해왔고 요즘 AI가 다 잘 해주는데 굳이? 라는 생각을 할 수 있다. 맞다. 근데 지금 이 시기가 내가 자바에 대해 잘 몰랐던 부분과, 추상적으로 알고 있는 개념들을 명확하게 이해할 수 있는 마지막 기회라고 생각해 공부하려 한다. 개정 전 책이라 최신 문법 일부가 빠져있어서 해당 부분은 책을 모두 읽고 난 후에 보충하여 공부할 계획이다. 1장: 자바 시작하기java : JVM 실행 → 바이트코드 로드/검증/실행 (바이트코드 → 기계어)인터프리터JIT 컴파일러javac..

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 3, 4장

3장 - 성능을 좌우하는 DB 설계와 쿼리인덱스조회 트래픽을 고려한 인덱스 설계TPS와 DB에 축적되는 데이터양 따라 적절하게 인덱스를 추가할 필요가 있다. 트래픽과 읽기 시간에 따라 풀스캔을 해도 괜찮을 수 있다.왜 인덱스를 무작정 추가하는건 안좋을까?쓰기 성능 저하 (INSERT/UPDATE/DELETE 비용 증가)INSERT 할 때마다 각 인덱스에도 항목을 추가UPDATE 할 때 인덱스 컬럼이 바뀌면 기존 인덱스에서 제거 + 새로 추가DELETE 도 인덱스에서 제거저장공간 + 메모리(버퍼 캐시) 낭비디스크 용량 증가중요한 데이터/핫 인덱스가 메모리에 못 올라가고 밀려남 → 캐시 미스가 늘어 읽기 성능이 떨어질 수 있음버퍼 캐시 : DB는 디스크에서 페이지(블록)를 읽어오면 메모리(버퍼 캐시) 에 올..

백준 1949번 - 우수 마을 [C++]

https://www.acmicpc.net/problem/1949 이 문제를 풀고난 후, 독립 집합이라는 새로운 개념을 배웠다. 이를 정리하기 위해 기록한다. 용어 정리 독립 집합(Independent Set) : 그래프에서 서로 연결되지 않은(인접하지 않은) 정점들의 집합최대 가중치 독립 집합(Maximum Weight Independent Set) : 그래프의 여러 정점 중 서로 인접하지 않은 정점들을 선택하되, 선택된 정점들의 가중치(weight)의 합이 가장 커지는 집합극대 독립 집합(Maximal Independent Set) : 독립 집합이면서, 집합에 정점을 추가하면 더 이상 독립성을 유지할 수 없는 상태의 집합최대 독립 집합 (Maximum Independent Set): 정점의 개수가 가..

보호된 글

비밀번호를 입력하세요