전체 글 77

데이터 세상으로 떠나는 간결한 안내서 - NoSQL 왜 등장했을까?

'빅 데이터 세상으로 떠나는 간결한 안내서(NoSQL Distilled)'라는 책의 내용을 정리해두는게 좋을것 같아 블로그에 포스팅 하기로 결정하였습니다. NoSQL 왜 등장했을까?어떤 상황에 어떤 NoSQL 을 사용해야하는가?로 나누어 올리도록 하겠습니다. 관계형 데이터베이스가 지배하던 시절 오랫동안 데이터를 저장한다고 하면 당연히 관계형 데이터베이스(RDBMS)를 사용하는 게 기본이었습니다.새 프로젝트를 시작할 때 고민이라곤 어떤 관계형 데이터베이스를 쓸지 정도였죠. 회사에 이미 계약된 벤더가 있다면 그런 고민조차 필요 없었습니다.1990년대에 객체 데이터베이스가 잠깐 도전장을 내밀었지만, 크게 성공하지 못했습니다. 관계형 데이터베이스는 계속해서 독보적인 위치를 유지했죠.관계형 데이터베이스가 오래 ..

독서 정리 2025.08.07

AI 웹소설 - AI 에게 웹소설을 써달라고 부탁해보았다.

평소 취미가 웹소설을 읽는 것인데, 예전에 AI가 웹소설을 어느 정도 수준으로 쓸 수 있을까 궁금해서 실험을 해본 적이 있습니다. 하지만 그때는 실망스러운 결과물을 받았습니다. 최근 다양한 AI를 사용하며 각각의 강점이 다르다는 걸 체감하면서, 이 강점들을 조합해 웹소설을 써보면 어떨까 생각했습니다.직접 AI에게 명령을 주며 결과물을 얻어보니, 단일 AI로 작성했을 때보다 확연히 나은 결과물이 나왔다는 느낌이 들었습니다. 이 실험 과정을 블로그에 공유하고자 합니다.실험 개요목표: AI 도구들의 강점을 활용해 웹소설 1화를 완성하기활용 AI: Claude, GPT-4, Gemini, Grok소요 시간: 약 2시간단계별 진행 요약AI로 진행하는 실험이니만큼, 진행 방식도 AI에게 맡겨보자는 생각으로 Clau..

IT 관련 기타/AI 2025.05.15

JVM 가비지 컬렉션: 객체 생사 판단과 메모리 정리 알고리즘

JVM(Java Virtual Machine)은 메모리를 효율적으로 관리하기 위해 가비지 컬렉션(Garbage Collection)을 수행합니다. 이는 더 이상 사용되지 않는 객체를 찾아 메모리를 회수하는 과정입니다. 해당 글에서는 JVM이 객체의 생사를 판단하는 방법과 메모리를 정리하는 알고리즘을 설명합니다.1. 객체의 생사 판단JVM은 프로그램에서 더 이상 참조되지 않는 객체, 즉 '죽은' 객체를 식별하여 정리 대상으로 지정합니다. 이를 판단하는 두 가지 주요 알고리즘은 다음과 같습니다.1.1 참조 카운팅 (Reference Counting)설명: 각 객체에 참조 횟수를 기록하는 카운터를 유지합니다. 객체가 참조될 때 카운터를 증가시키고, 참조가 끊기면 감소시킵니다.판단 기준: 카운터가 0이 되면 해..

개발언어/Java 2025.05.14

JVM 메모리 구조

자바 가상 머신(JVM)은 자바 프로그램을 실행할 때 메모리를 효율적으로 관리합니다. 자바 개발자는 메모리 관리를 직접 하지 않아도 되지만, 메모리 누수나 오버플로 같은 문제가 생기면 JVM의 작동 방식을 알아야 해결할 수 있습니다. 이 글에서는 JVM이 메모리를 어떻게 나누고 사용하는지 설명합니다. JVM은 메모리를 두 가지로 나눕니다:스레드마다 따로 가지는 영역 (스레드 프라이빗)모든 스레드가 함께 사용하는 영역각 영역의 역할과 특징을 하나씩 알아보겠습니다.1. 스레드마다 따로 가지는 메모리 영역스레드마다 독립적인 메모리 공간은 각 스레드가 작업할 때 필요한 데이터를 저장합니다. 다른 스레드와 간섭 없이 안전하게 관리됩니다.1) 프로그램 카운터 (PC 레지스터)역할: 현재 스레드가 실행 중인 명령어의..

개발언어/Java 2025.05.13

개발자가 영어도 잘해야 하나요? - 개발자 영어에서 자주 사용하는 불규칙 동사

앞의 글에서 소개한 내용과 같이 제가 요즘 읽고 있는 책인 "개발자가 영어도 잘해야 하나요?(최희철 작가)" 란 책의 개발자 영어에서 자주 사용하는 불규칙 동사들을 정리한 내용입니다.해당 책은 전체 내용을 정리할 생각은 없고 "Chater1" 의 내용만 정리할 예정입니다.개발자에게 꼭 필요한 영어 표현들 및 관련 사용 예제들이 잘 정리되어 있어, 관심 있는 분들께는 구매해 소장하시는 것을 추천드립니다.아래는 책의 동사 부분입니다.(예문은 제가 직접 추가하였고 카테고리를 분류한 내용입니다.)개발자 영어에서 자주 사용하는 불규칙 동사1. 데이터 처리 및 작업 뜻현재형과거형과거완료형예문자르다CutCutCutCut the dataset into smaller chunks for processing.찾다FindF..

독서 정리 2025.04.22

개발자가 영어도 잘해야 하나요? - 개발자가 자주 사용하는 동사

이번 글에서 소개할 내용은 제가 요즘 읽고 있는 책인 "개발자가 영어도 잘해야 하나요?(최희철 작가)" 란 책의 개발자가 자주 사용하는 동사들을 정리한 내용입니다.해당 책은 전체 내용을 정리할 생각은 없고 "Chater1" 의 내용만 정리할 예정입니다. 개발자에게 꼭 필요한 영어 표현들 및 관련 사용 예제들이 잘 정리되어 있어, 관심 있는 분들께는 구매해 소장하시는 것을 추천드립니다.아래는 책의 동사 부분입니다. (예문은 제가 직접 추가하였고 카테고리 분류와 일부 단어도 추가한 내용입니다.)개발자가 자주 사용하는 영어 동사1. 데이터 처리 및 변환동사뜻예문Analyze분석하다Analyze the dataset to identify trends.Convert변환하다Convert the JSON string..

독서 정리 2025.04.22

GPT 에게 물어본 나

최근 유튜브에서 쇼츠 영상을 보다가 아래와 같은 영상을 봤습니다."내가 너와 상호작용한 모든 내용을 바탕으로 내 사고 패턴과 의사 결정 방식, 무의식적인 편향, 반복적으로 드러나는 '약점'이나 맹점'을 상세히 분석해줘. 그리고 각 항목에 대해 나에게 필요한 조언을 구체적으로 적어줘. 5000자 이상" 예전에 지피티한테 나에 대해 말해줘라는 질문이 유행이였던 적이 있었는데 그때 보다 좀 더 디테일한 질문이 유행하나 보다란 생각과 함께 나도 해봐야겠다라고 생각이 들었습니다. 모델은 o3 를 통해서 질문했는데 유료로 사용한 기간이 2년이 넘다보니 꽤나 상세한 분석을 해주는것 같아서 아래처럼 공유해봅니다.1. 사고 패턴 전반특징구체적 관찰필요한 조언체계화 지향문제를 단계별로 쪼개고 “정답 → 피드백 → 다음 ..

IT 관련 기타/AI 2025.04.22

Intellij 자주 쓰는 단축키 정리

코드 탐색Ctrl + B : 선언부로 바로 이동Ctrl + Alt + B : 구현부로 바로 이동Alt + F7 : 해당 요소가 사용된 모든 위치 찾기Ctrl + F12 : 현재 파일 구조(메서드·필드 목록) 보기리팩토링Shift + F6 : 이름(변수·메서드·클래스) 일괄 변경Ctrl + Alt + L : 코드 자동 정렬·포맷팅Ctrl + Alt + O : 사용하지 않는 import 제거Ctrl + Alt + M : 선택 블록을 메서드로 추출Ctrl + Alt + V : 표현식을 변수로 추출Ctrl + Alt + C : 값을 상수로 추출멀티 편집Alt + J : 커서 위치 단어와 같은 단어 다음 찾기Ctrl + Shift + Alt + J : 같은 단어 전체 선택Ctrl (한 번) + ↑/↓ : 여러 줄..

게으른 완벽주의자를 위한 심리학 - 2부

예전에 읽었던 『게으른 완벽주의자를 위한 심리학』이라는 책의 2부 내용을 정리하고자 합니다. 내용 전체를 모두 담지는 못했지만, 저에게 특히 도움이 되었던 중요한 부분들은 최대한 자세히 담았습니다. 이 책은 미루는 습관을 고치기 위한 심리학적 접근법을 체계적으로 설명하며, 단순히 "하라"는 식의 조언 대신 근본적인 원인을 파악하고 실질적인 전략을 제시합니다. 아래는 책의 4장, 7장, 8장, 9장, 10장의 핵심 내용을 가독성 있게 정리한 글입니다. 미루기와의 싸움에서 실질적인 도움을 얻고 싶은 분들에게 이 글이 도움이 되길 바랍니다.4장. 미루기 극복을 위한 접근법두 달이면 미루는 습관을 고칠 수 있을까?미루는 습관을 고치는 데 즉효약은 없습니다. 연구에 따르면 새로운 습관을 형성하는 데 평균 66일이..

독서 정리 2025.04.11

템플릿 메서드(Template Method) 패턴을 알아보자

템플릿 메서드(Template Method) 패턴이란 무엇인가? 복붙을 많이하는 프로그래밍의 특성상 코딩을 하다보면 아래의 예시처럼 동일한 코드가 특정한 부분을 빼고 똑같이 반복되는 결과물이 나온적이 한번씩 있을거라 생각합니다.void method1() { System.out.println("동일한 코드 A"); System.out.println("method1만의 코드"); System.out.println("동일한 코드 B");}void method2() { System.out.println("동일한 코드 A"); System.out.println("method2만의 코드"); System.out.println("동일한 코드 B");}위와 같은 상황이 발생하는 경우 동..