최근 올라온 글이에요!
-
Claude, GPT가 내 말을 듣지 않는 이유AI 2026.10.06 00:29
Claude, GPT가 내 말을 듣지 않는 이유안녕하세요? 장장스입니다.Claude, GPT를 사용하다 보면 내 프롬프트의 의도와 다르게 행동하는 경우가 종종 있습니다. 이를 제어하기 위한 방안으로 하네스 엔지니어링을 적용했습니다. 그런데도 간혹 Claude, GPT가 내 지시를 어기는데 왜 그런지 궁금하여 그 이유를 찾아봤습니다. Claude, GPT가 내 지시를 따르지 않는 거지?팀에서 AI에게 다음 작업을 맡겼다고 가정해 보자. “운영 DB를 조회해서 장애 원인을 설명해 줘. 데이터는 절대 변경하지 마.” 여기에 하네스(harness), 즉 모델의 입력과 도구 실행을 관리하는 소프트웨어(Claude Code, Codex)를 붙였다. AI에게는 `get_user(id)`라는 조회 도구만 제공했다. ..
-
UML 작성법 교육 후기 #plantUML #plantraft.comIT knowledge 2026.07.02 22:19
개발 문서를 작성하다 보면 프로세스 정리를 위해 시퀀스 다이어그램이나 플로우 차트를 사용해서 정리를 많이 했다. 여러번 반복하다보니 자연스레 나만의 작성법(?)으로 그리기게 되었는데, 이번에 사내 교육으로 UML(Unified Modeling Language) 교육을 다녀와서 간단하게 내용을 정리 해본다.1. 유스케이스(Use Case) 다이어그램시스템이 무엇을 하는가를 사용자 관점에서 표현하는 다이어그램.- 액터(Actor): 서비스를 요청하는 주체 (사용자, 외부 시스템 등)- 유스케이스(Use Case): 시스템이 제공하는 기능- 액터와 유스케이스 사이의 관계를 선으로 표시즉, "누가(액터) → 무엇을 할 수 있는가(기능)"를 한눈에 보여주는 그림이다. 2. 클래스(Class) 다이어그램객체 유형과..
-
[JPA] No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [com.web.blog.dto.post.PostidandviewcntWrapperclass] 오류JPA 2023.07.09 15:18
No converter found capable of converting from type [org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap] to type [com.web.blog.dto.post.PostidandviewcntWrapperclass 오류 안녕하세요? 장장스입니다. 오늘은 JPA 사용 도중 발생한 오류 처리 방법을 정리입니다. JPQL 프로젝션에서 발생하는 문제 List memberDtoList = em.createQuery("select MemberDto(m.username, m.age) from Member m", MemberDto.class) .getResultLis..
-
[JPA] 공통 매핑 정보 @MappedSuperclassJPA 2023.07.09 10:59
[JPA] 공통 매핑 정보 @MappedSuperclass 안녕하세요? 장장스입니다. 오늘은 JPA에서 공통 매핑 정보를 편리하게 사용하는 @MappedSuperclass 에 대해 정리해보겠습니다. 실무에서 공통으로 사용되는 칼럼들 실무에서 테이블을 만들 때 보통 최초생성자와 생성시간, 최종수정자와 수정시간을 저장하는 칼럼들을 사용한다. 매번 반복되는 테이블 칼럼을 반복해서 사용하는 것은 개발자에게 꽤나 번거로운 일이 될 것이라 생각한다. JPA에는 이처럼 공통적으로 매핑되는 칼럼을 쉽게 사용할 수 있도록 @MappedSuperclass 어노테이션을 통해 기능을 제공합니다. @MappedSuperclass 위에서 언급한 최초생성자와 생성시간, 최종수정자와 수정시간을 공통으로 작성할 수 있도록 BaseEn..
-
[JPA] 상속관계 맵핑 @Inheritance, @DiscriminatorColumnJPA 2023.06.25 15:03
상속관계 맵핑 @Inheritance, @DiscriminatorColumn 안녕하세요? 장장스입니다. JPA 상속관계 맵핑 @MappedSuperclass 에 대해 정리해보겠습니다. 상속관계 맵핑 일반적인 관계형 데이터베이스는 슈퍼타입 서브타입 관계라는 모델링 기법이 있습니다. JPA에서는 슈퍼타입 서브타입 관계를 상속을 활용하여 구현할 수 있습니다. @Inheritance @Inheritance 어노테이션의 strategy 속성을 통해 전략을 선택 할 수 있습니다. @DiscriminatorColumn 어노테이션은 부모 클래스에 선언합니다. 하위클래스를 구분하는 용도의 칼럼을 사용합니다. name 속성을 통해 이름을 설정할 수 있습니다. default 값은 DTYPE 입니다. @Entity @Get..
인기글
-
[OS] 페이지 교체 알고리즘 (FIFO, LRU, LFU, NRU, NUR)
페이지 교체 알고리즘 (FIFO, LRU, LFU, NRU, NUR) 안녕하세요? 장장스입니다. 가상 메모리 기법을 구현하는 방식 중 하나인 요구 페이징 방식은 페이지 부재가 발생하게 됩니다. 페이지를 교체하는 작업은 오버헤드를 동반하므로 가능하면 페이지 교체가 적게 일어나도록 하는 것이 좋습니다. 페이지 교체가 무엇인지, 페이지 교체 페이지 부재(page fault)가 발생하면 요청된 페이지를 디스크에서 메모리로 읽어와야 합니다. 이때 물리적 메모리에 빈 프레임이 존재하지 않을 수 있습니다. 이 경우 물리적 메모리에 올라와 있는 페이지 중 하나를 선택해서 디스크의 스왑 영역으로 보내야 합니다. 이와 같은 과정을 페이지 교체라고 합니다. 페이지 교체 알고리즘 어떠한 프레임에 있는 페이지를 디스크의 스왑 ..
-
Claude, GPT가 내 말을 듣지 않는 이유
Claude, GPT가 내 말을 듣지 않는 이유안녕하세요? 장장스입니다.Claude, GPT를 사용하다 보면 내 프롬프트의 의도와 다르게 행동하는 경우가 종종 있습니다. 이를 제어하기 위한 방안으로 하네스 엔지니어링을 적용했습니다. 그런데도 간혹 Claude, GPT가 내 지시를 어기는데 왜 그런지 궁금하여 그 이유를 찾아봤습니다. Claude, GPT가 내 지시를 따르지 않는 거지?팀에서 AI에게 다음 작업을 맡겼다고 가정해 보자. “운영 DB를 조회해서 장애 원인을 설명해 줘. 데이터는 절대 변경하지 마.” 여기에 하네스(harness), 즉 모델의 입력과 도구 실행을 관리하는 소프트웨어(Claude Code, Codex)를 붙였다. AI에게는 `get_user(id)`라는 조회 도구만 제공했다. ..
-
Logback이란? feat.SLF4J
Logback이란? feat.SLF4J Logback? logback은 SLF4J의 구현체입니다. logback-core, logback-classic 및 logback-access의 세 가지 모듈로 구분됩니다. Logger, Appenders and Layouts Logger클래스는 logback-classic 모듈의 일부입니다 . 반면에 Appender및 Layout인터페이스는 logback-core의 일부입니다. 범용 모듈로서 logback-core에는 로거 개념이 없습니다. ▶Logger Logger는 가능한 모든 로그 기록을 개발자가 선택한 일부 기준에 따라 분류된다고 가정합니다. level of request p effective level q TRACE DEBUG INFO WARN ERROR..
-
[OS] 프로세스 메모리 구조 (코드, 데이터, 스텍, 힙)
프로세스 메모리 구조 (코드, 데이터, 스텍, 힙) 프로그램의 실행 프로그램의 실행은 두가지 중요한 의미를 가진다. 파일 시스템에 존재하던 실행파일이 메모리에 적재된다는 의미 프로그램이 CPU를 할당받고 명령을 수행하고 있는 상태 파일 시스템에 있는 실행 파일이 메모리에 적재될 때, 실행파일 전체가 메모리에 올라가지 않는다. 일부분만 메모리에 올라가고 나머지는 디스크의 특정영역인 스왑 영역에 존재한다. 프로세스 메모리 영역 프로세스의 주소 공간은 코드(code), 데이터(data), 스택(stack), 힙(heap) 영역으로 구성된다. 이러한 주소 공간을 우리는 가상 메모리 (또는 논리적 메모리: logical memory)라고 부른다. code 영역 사용자가 작성한 프로그램 함수들의 코드가 CPU에서 ..