본문 바로가기

전체 글122

Prompt With Engineering AI 서비스를 만들 때, 개발자는 어디까지 개입할 수 있을까? AI 는 어느 부분에서 부족할까? 소설을 추천하여 매일 메일링을 해주는 서비스가 있다고 치자. 사용자 연령에 따라 소설 추천이 달라져야 할 수도, 번역판이 존재하지 않는다면 원작을 추천해야 할 수도 있다. AI 가 적재적소의 답변을 하도록 가이드를 줘야한다. 그게 프롬포트 Prompt 다.프롬포트는 LLM 을 사용할 때 입력으로 주어지는 명령이나 질문을 뜻한다. 프롬포트는 어떻게 가져가냐에 따라 응답 품질이 아예 달라지기 때문에 매우 매우 중요하다. 지금까지 살펴본 DL 의 주요 개념과 프롬포트는 어떻게 연결되는지 궁리해보았다.    연결이 조금 더 복잡해졌지만, 연두색만 집중해서 살펴보면된다. LLM 은 DL 의 Transformer 아키텍.. 2025. 3. 21.
ChainOfThought "AI" ChainOfThought 는 LLM 프롬포트 기법 중 하나며, ‘생각의 사슬' 또는 '일련의 생각' 으로 번역할 수 있다. AI 생태계를 양파로 표현해보았다. AI 는 모든 개념을 아우를 수 있는 상위 개념이다. 인간의 지능을 인공적으로 만들겠다는 것. 이를 구현하는 방법 중 하나로 ML(머신러닝)이 있으며, ML 의 확장된 형태가 DL(딥러닝)이다. ML 은 데이터에서 일련의 패턴을 학습한다. DL 은 여기서 한 단계 더 나아간다. 이미지나 영상같은 비정형 데이터까지 학습한다. 이건 더 복잡해진 케이스를 커버한다는 것을 넘어선다. DL은 인간의 신경망에서 아이디어를 얻어 설계된 Deep Neural Network(DNN)를 기반으로 한다. 덕분에 원본 데이터에서 중요 특징(feature)을 자동으.. 2025. 3. 20.
<AI, 네가 뭔데 날 울려> 소개 본격 AI 시대 도래에 앞서 많은 개발자들이 일자리를 위협받고 있습니다.본 시리즈는 그들을 위해 바칩니다. 우리는 어떻게 될까요?  시리즈 목차 0. ChainOfThought "AI"1. Prompt With Engineering2. AI 를 이용한 작은 서비스 경험3. 정말.. 내 일자리는 위험할까? 2025. 3. 17.
This is water 손석구를 추앙하는 편이기도 하지만 사실 오래 전부터 내가 추앙해온 사람은 따로 있었으니... 그는 바로 DFW.  5년 전, 을 읽고 그의 모든 책을 다 읽어내기로 결심했었다. 국내 출간물은 다 읽었다고 생각했는데.. 그새 번역 신간이 몇 권 더 나왔다. 도 그 중 하나였다. DFW 는 2005년 대학교 졸업 연사로 초청받았다. DFW 가 졸업 연사를? 교훈을 설파하는 일에 알러지 반응을 일으킬 것 같은 사람이어서 의외였다. 웃긴 건 그 연설이 그의 대표작 중 하나다. 연설 스트립트가 번역되어 국내에도 출판되었다. 그게 다.  너무 진부하고 상투적이어서 흘려듣게 되는 말, 그 말에 담긴 깊이를 이해하면 클리셰는 전복된다. 신선한 게 된다. 그의 연설은 "진정한 교육은 생각하는 법을 가르친다." 라는.. 2025. 2. 22.
java.util.concurrent 안에는 뭐가 들었을까 이전 블로그 포스팅에서 동시성 제어의 원초적 접근법으로 synchronized 가 유효한지 살펴보았습니다. 이 후, java.util.concurrent 패키지에서 synchronized 의 단점을 보완할 수 있는 방법을 찾게되었습니다.synchronized 에 치명적 단점은 두 가지가 있습니다. synchronized 키워드로 이루어진 영역에 스레드가 접근하려면 모니터 락을 획득해야합니다. 스레드는 모니터 락을 획득할 때까지 무한 대기합니다. 이때 해당 스레드의 상태는 BLOCKED 입니다. BLOCKED 상태는 interrupted() 로도 다시 RUNNABLE 상태로 전이시킬 수 없습니다. 락을 얻기 전까지는 계속 BLOCKED 상태로 머무릅니다. 그래서 '무한' 대기 상태에 빠지게됩니다. 심지어 .. 2025. 1. 4.
동시성 제어의 원초적 접근법, 애플리케이션 락은 유효한가요? 거의 모든 서비스는 애플리케이션 당 N 대의 Pod 를 가동합니다. 동시다발적으로 각 Pod 에서 공유자원에 접근할 수 있으므로, race condition 을 고려하기 위해 DB 락,  레디스 락 등이 거론됩니다. 나를 비롯한 대부분의 서버 개발자들이 분산 락 개념들을 인지하고 있어야하는 이유입니다. 근데 문득 이런 생각이 들었습니다. Pod 가 한 대라면 이런 것들을 알아야할까? 애플리케이션 락으로만 컨트롤 할 수 없을까? 단 하나의 Pod 만 운용하는 사례는 극히 드물다 하더라도, 궁금했습니다. 이런 저런 분산 락 도구에 가려 잊혀진 애플리케이션 락, synchronized 에 대해서 다시 한 번 고찰해보는 시간을 가져보았습니다.synchronized는 Java 멀티스레딩 환경에서 동기화를 제공하는.. 2024. 12. 14.