전체 320

IntelliJ 콘솔 창 한글 깨짐 현상의 원인과 해결 방법

#1 왜 깨지는가?#1-1 배경 지식VM이 println("뀨") 라는 코드를 마주쳤다. (정확히는, 저런 .java 코드 형태가 아닌 .class 코드 형태의 print문 일 것이다) [UTF-8로 인코딩] "뀨" → EB 80 A8 (크기: 3바이트)[CP949로 인코딩] "뀨" → B2 F3 (크기: 2바이트)혹시라도 헷갈릴까봐 여담부터 꺼내는 게 좀 그렇지만, "인코딩"은 컴파일 시점에서 일어나는 일이 아니다. 애초에 VM은 이미 컴파일된 바이트 코드를 읽는 역할이므로, "VM이 인코딩을 수행한다"는 일은 컴파일 이후(= 런타임)에 일어나는 일이어야만 한다. 그렇다면 "인코딩"이란 무엇인가? "인코딩"이란, Java VM이 .class 파일을 실행하다가 콘솔에 문자열을 출력하거나 파일을 저장하는 ..

How To Think - 서론

#1 책 소개 인지심리학 | 존 폴 민다 - 교보문고인지심리학 | AI 시대 필수 교양, 인지심리학의 모든 것을 담았다! 인간의 생각, 기억, 선택의 메커니즘을 밝혀내는 100여 년의 여정 컴퓨터 알고리즘이 의사결정을 하고 미래를 예측하는 오늘 세product.kyobobook.co.kr이 책의 표지가 책의 내용을 잘 보여주고 있다. 사람들이 어떻게 생각하는지를 다룬다. 우리나라에서 이 책을 부르는 이름은 "인지심리학"이다. 나는 원서의 제목인 "How To Think"(#3-1 참조)로 부르려고 한다. "인지심리학"은 책 이름이라기보단, 카테고리 이름처럼 들리기 때문이다. #2 핵심 논리#2-1 미지의 마음식기세척기는 많은 사람이 쓰고 있지만, 사실 식기세척기가 어떻게 작동하는지는 수수께끼와도 같다...

하네스 엔지니어링 실습

#1 개요 2023 ~ 2026년 AI 사용법의 진화#1 개요#1-1 What2022년 말 ChatGPT 출시 이후 LLM은 빠르게 대중화되었다. 개발자들은 2026년 지금까지도 현재진행형으로, LLM이 더 잘 응답하거나 행동하도록 설계하는 기법을 연구하고 있다. 가장 대표kenel.tistory.com위의 게시글에서 하네스 엔지니어링에 대해 간략히 정리해 봤지만, 역시 직접 실습해 봐야 몸으로 알 수 있겠다. https://www.youtube.com/watch?v=AQOvNx87Urs이때 마침 따라 하기 좋은 하네스 구축 영상이 있었다. 그대로 따라 해보았다. #2 실습 결과 GitHub - Kanmanemone/harness_frameworkContribute to Kanmanemone/harnes..

Swemo - Iteration 6: MVP 1 구현 (3/3)

#1 개발 목표 (Iteration Goal)#1-1 이상(Ideal)과 징검다리Iteration 6: MVP 1 구현 (3/3)Iteration 5에서 화면(UI)를 약간 다듬고, 내부 코드의 가독성을 손봤다. #1-2 개발 범위이번 개발 범위 (In Scope)UI 다듬기코드 가독성 향상 범위 외 (Out of Scope)기능 추가ㆍ수정ㆍ삭제 #2 변경 내역 (커밋 목록)#2-1 Iteration 6-1: UI 다듬기주요 변경점Preview가 누락된 컴포넌트에 Preview 추가memo 모듈 전용 컴포넌트에 internal 접근제어자 붙임MemoFeed의 LazyColumn에 bottom padding을 줘서, FAB가 Memo를 가리지 않게 함 스크린샷사용자가 스크롤을 끝까지 내렸을 때, FAB를 ..

2023 ~ 2026년 AI 사용법의 진화

#1 개요#1-1 What2022년 말 ChatGPT 출시 이후 LLM은 빠르게 대중화되었다. 개발자들은 2026년 지금까지도 현재진행형으로, LLM이 더 잘 응답하거나 행동하도록 설계하는 기법을 연구하고 있다. 가장 대표적인 기법 3가지를 시간순으로 나열해본다.#1-2 주의할 점본 게시글의 제목에 '진화'라는 단어를 썼다. 그래서 "(비교적) 오래된 기법은 혹시 도태된 것인가?"라고 생각할 수도 있지만, 그렇지 않다. 모든 기법은 전부 중요하다. '진화'는 '개발자 관심사의 이동 경로'일 뿐, 모든 기법은 충실히 지켜야 한다 (세대교체가 아니라 동시 병행).#2 프롬프트 엔지니어링#2-1 WhatㆍWhy"어떻게 질문해야 잘 대답하는가?" (입력 최적화)입력 → 출력의 구조에서 입력을 조작해 좋은 출력을..

Swemo - Iteration 5: MVP 1 구현 (2/3)

#1 개발 목표 (Iteration Goal)#1-1 이상(Ideal)과 징검다리Iteration 5: MVP 1 구현 (2/3)Iteration 4의 토대 위에 기본 기능들을 구현했다. 이어지는 Iteration 6에서 추가적인 리팩토링 후 MVP를 마무리한다. #1-2 개발 범위이번 개발 범위 (In Scope)카테고리 추가, 이름 변경, 삭제 기능메모 수정, 삭제 기능메모 콘텐츠(MemoContent) 제거 기능리팩토링MemoViewModel가 지닐 필요가 없는 과도한 프로퍼티를 MemoUiState 쪽으로 옮김MemoViewModel의 일부 이벤트들이 재사용성을 가지도록 수정MemoViewModel의 이벤트들에 (직관적으로 읽히도록) 주석 추가MemoScreen에 구조적으로 화면의 하나의 Dial..

Swemo - Iteration 4: MVP 1 구현 (1/3)

#1 개발 목표 (Iteration Goal)#1-1 이상(Ideal)과 징검다리이상(Ideal)내가 직접 쓰고 싶은 앱이 아닌데, 남에게 어떻게 권유할 수 있을까? 앞으로 추가할 기능의 아이디어를 얻기 위해서든, 개발 의욕을 위해서든, 버그 발견을 위해서든 제작자의 실사용은 필수다.지금까지의 작업 결과물을 토대로, 당장 내가 사용할 수 있는 앱을 만든다. 메모장 대용으로 사용할 수 있기만 하면 그만이므로, 완성도에는 신경 쓰지 않아야 할 것이다. CategoryㆍMemoㆍMemoContent 각각에 대한 CRUD만을 구현한다. Iteration 4: MVP 1 구현 (1/3)현재까지 구현한 것을 중간 마무리하여 첫 번째 MVP를 만든다. Iteration 4에서는 실제 데이터베이스 추가 및 해당 DB에..

AI 혁신 뒤에 남는 것

#1 혁신 뒤에 남는 것모든 혁신은 공통으로 하나의 일을 해왔다. 바로, '미련한 짓'의 범위를 늘려온 것이다. 혁신이 일어나면 새로운 능력이 생기는 것과 동시에, 예전엔 당연했던 일부 행동이 비합리적 선택으로 변모한다. 혁신 뒤에 남는 것은, 버려야 할 과거의 잔재다. 엑셀 등장 이후, 수기로 장부 쓰기는 미련한 일이 되었다.검색엔진 등장 이후 백과사전을 뒤지는 행위도 마찬가지다.내비게이션 등장 이후, 종이지도를 펴는 일 역시 (특별한 경우를 제외하면) 거의 사라졌다. 따라서 중요한 질문은 이것이다: AI 혁신이 이뤄진 지금, 무엇이 미련한 짓인가? #2 AI 혁신 뒤에 남는 것은...#2-1 초안이제 어떤 분야든, 준전문가 수준의 초안을 즉시 만들어 볼 수 있다. 따라서 빈 화면에서 모든 것을 처음부..