이펙티브 자바 12장) 직렬화

이펙티브 자바에서 말하는 직렬화(Serializable) 는객체의 상태를 바이트 스트림으로 변환하는 것을 의미한다.반대로 바이트 스트림을 다시 객체로 복원하는 과정은 역직렬화다.바이트 스트림을 사용하는 이유는네트워크, 파일, DB 등 출발지와 목적지 모두가 이해할 수

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

이펙티브 자바 11장) 동시성

여러 스레드가 가변 데이터를 공유한다면 그 데이터를 읽고 쓰는 동작은 반드시 동기화 해야 한다.동기화하지 않는다면 한 스레드가 수행한 변경을 다른 스레드가 보지 못할 수도 있다.배타적 실행은 필요 없고 스레드끼리의 통신만 필요하다면 volatile 한정자만으로 동기화할

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

[자바] BOJ_16234_인구이동_G4

처음에 봤을 때 1\. 모든 칸을 돌면서 동시에 visited 갱신하면서, 국경선 열지 판단하는 것2\. 한번 열면 다 합쳐서 sum / N 해서 갱신하는 것3\. 차이가 L~R일 때까지 위 과정을 반복하는 것..이라고 생각하고 코드를 짰다.처음에 코드를 구현했을 때

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

이펙티브 자바 10장) 예외

아이템 69 - 예외는 진짜 예외 상황에만 사용하라 예외는 오직 예외 상황에서만 써야 한다. 절대로 일상적인 제어 흐름용으로 쓰여선 안 된다. 잘 설계된 API라면 클라이언트가 정상적인 제어 흐름에서 예외를 사용할 일이 없게 해야 한다.

2025년 12월 26일
·
0개의 댓글
·

[JSCODE] 자바 스터디 후기

5주동안 진행한 JSCODE 자바 스터디 참여 후기입니다.정기적으로 자바를 공부하는 습관을 들임내가 생각해보지 못한 면접 질문을 받아 공부해야할 시야를 더 넓힐 수 있었음!한 조에 3~4명으로 적당함평소에 궁금했던 고민들 짧게 물어볼 수 있음. 공부를 위한 책이나 블로

2025년 12월 23일
·
0개의 댓글
·

Garbage Collection

Garbage CollectionAssembled by GimunLee (2019-10-28)GoalGarbage Collection의 역할에 대해 설명할 수 있다.Garbage Collection의 메모리 해제 과정을 3단계로 설명할 수 있다.Generational

2025년 12월 18일
·
0개의 댓글
·

이펙티브 자바 9장) 일반적인 프로그래밍 원칙

아이템 57 - 지역변수의 범위를 최소화하라 지역변수의 유효 범위를 최소로 줄이면 코드 가독성과 유지보수성이 높아지고 오류 가능성은 낮아진다. 지역변수의 범위를 줄이는 가장 강력한 기법은 '가장 처음 쓰일 때 선언하기'다. 거의 모든 지역변수는 선언과 동시에 초기화해야

2025년 12월 17일
·
0개의 댓글
·

[자바] BOJ_1182_부분수열의합_S2

깊이가 N이면 그때 합이 S인지 확인현재 arridx를 합한 경우도 고려해야되고 합하지 않은 경우도 고려해야 함S == 0일 때, 공집합이 생기므로 정답-1 해줘야 함

2025년 12월 16일
·
0개의 댓글
·

[자바] BOJ_15686_치킨배달_G5

집이랑 치킨집을 따로 ArrayList로 관리dfs로 깊이가 M이면 치킨거리 계산해서 최소치킨거리 계산하게!한번 selected에 들어가서 조합 처리됐으면 백트래킹으로 복구시켜놓기👉 치킨집 M개 조합을 전부 탐색해서 최솟값을 구하는 문제치킨집 중 M개를 선택하는 모든

2025년 12월 15일
·
0개의 댓글
·
post-thumbnail

[대규모 시스템 설계 기초] 10장 알림 시스템 설계

알림(Notification) 시스템은 모바일 푸시 알림, SMS 메시지, 이메일의 세 가지 주요 채널로 구성된다. 이러한 시스템은 수많은 사용자에게 안정적으로 이벤트를 전달해야 하므로, 확장성과 안정성을 모두 고려한 아키텍처 설계가 필요하다.어떤 종류의 알림실시간 시

2025년 12월 11일
·
0개의 댓글
·

동시성 프로그래밍

동시성은 여러 작업이 “논리적으로 동시에 진행되는 것처럼 보이도록” 스케줄링하는 개념이고, 병렬성은 실제로 여러 작업이 같은 시점에 물리적으로 동시에 실행되는 상태를 말합니다.1예를 들어 단일 코어 CPU에서 여러 스레드를 번갈아 실행해 사용자에게 동시에 돌고 있는 것

2025년 12월 11일
·
0개의 댓글
·

이펙티브 자바 8장) 메서드

✅ Item 49. 매개변수가 유효한지 검사하라 1. 왜 매개변수 검사가 중요한가? ✔ 메서드는 잘못된 입력을 절대 받아들이면 안 된다. 매개변수가 유효하지 않으면 즉시(fail-fast) 예외를 던져야 한다. 유효성 검사를 하지 않으면 다음 문제가 발생할 수 있

2025년 12월 11일
·
0개의 댓글
·

[대규모 시스템 설계 기초] 9장) 웹 크롤러 설계

웹 크롤러: 검색 엔진에서 널리 쓰는 기술, 웹에 새로 올라오거나 갱신된 콘텐츠를 찾아내는 것이 주된 목적검색 엔진 인덱싱: 크롤러는 웹 페이지를 모아 검색 엔진을 위한 로컬 인덱스 만듦웹 아카이빙: 나중에 사용할 목적으로 장기보관하기 위해 웹에서 정보를 모음웹 마이닝

2025년 12월 10일
·
0개의 댓글
·

[자바] BOJ_2636_치즈_G5

arr를 계속 갱신하면서 가장 자리 판별하면 될듯가장자리란? 상하좌우 중 한 곳이라도 치즈가 없으면 탈락!가장자리인 곳은 2로 바꿔서.. 판별하면 되지 않을까답은 Queue로 만들어서 size 출력하고 poll()하기처음엔 어떤 알고리즘을 적용해야될지 감이 안 잡혀서

2025년 12월 8일
·
0개의 댓글
·

[자바] BOJ_1417_국회의원선거_S5

처음에는 어떤 방식으로 풀어야되지? 잘 모르겠어서 코드부터 써봤는데 알고보니 구현문제여서 그럴 수 밖에 없었다.n, dasom까지 받고 나머지를 배열로 받아 계속 Array.sorts하면서 비교했다. Array.sorts를 하면 내림차순으로 되는 줄 알고.. 있었는데

2025년 12월 5일
·
0개의 댓글
·

스레드와 스레드 풀

멀티쓰레딩은 현대 애플리케이션에서 필수적인 개념이며, 특히 웹 서버·백엔드 개발에서는 요청을 병렬로 처리하기 위해 스레드 활용이 매우 중요합니다. 아래에서 Java의 스레드 생성 방식부터 스레드 풀과 스프링이 대규모 스레드 풀을 사용하는 이유까지 정리해보겠습니다.Jav

2025년 12월 4일
·
0개의 댓글
·

[자바] BOJ_5567_결혼식_S2

bfs(int idx, int depth)로 한번만 main 메소드에서 실행시켜서 depth가 2를 초과되면 return하게 해야하나?라는 생각이 들어 그렇게 구현했는데언제 return해야되는지... 이게 한번만 쭉 갔다가 되돌아오면 되는 게 아니라 depth가 2이하

2025년 12월 4일
·
0개의 댓글
·

[자바] BOJ_14888_연산자끼워넣기_S1

숫자 조합 + 연산자 조합을 일단 만들어서그걸 계산한 후에Math.max, Math.min으로 계산하기이렇게 3단계로 나눠야겠다고 생각했다.그래서 dfs 메소드를 두개로 나눠서 이걸 어떻게 조합하지..? StringBuilder? 이러고 헤맸는데 알고보니 dfs 안에서

2025년 12월 2일
·
0개의 댓글
·
post-thumbnail

[자바] BOJ_15652_N과M(4)_S3

중복 조합(Combination with Repetition)N과 M이 주어졌을 때,1부터 N까지 자연수 중에서중복을 허용해서비내림차순(오름차순 유지)으로길이가 M인 수열을 모두 출력예:N=4, M=2라면이런 식의 "중복 조합" 형태가 나온다.✔ 왜 start 파라미터

2025년 12월 1일
·
0개의 댓글
·

[자바] BOJ_2667_단지번호붙이기_S1

N×N 지도에서1 → 집이 있는 곳0 → 집이 없는 곳상하좌우로 연결된 집들은 하나의 단지를 이룬다.해야 할 일:전체 단지 개수를 구하고각 단지의 집 수를 오름차순으로 출력이 문제의 구조는 전형적인 2차원 BFS/DFS 영역 탐색 문제이다.인접한 1들이 연결된 “덩어리

2025년 12월 1일
·
0개의 댓글
·