Claude 텍스트 워터마크: AI 작성 여부를 어디까지 증명할까
Anthropic이 발표한 통계적 텍스트 워터마크의 작동 방식과 번역·재작성에서의 한계, 콘텐츠 운영에 주는 의미를 정리합니다.
소프트웨어 설계와 운영부터 AI 모델·도구·산업의 변화까지 깊이 있게 다룹니다.
Anthropic이 발표한 통계적 텍스트 워터마크의 작동 방식과 번역·재작성에서의 한계, 콘텐츠 운영에 주는 의미를 정리합니다.
이미지의 큰 구조와 세부 표현을 나눠 처리하는 Meta의 WaiT 연구가 고해상도 이미지 생성 효율에 주는 의미를 살펴봅니다.
차기 모델의 사이버 역량 평가와 강화학습 중단, 감시·격리 비용이 AI 모델 개발에 주는 의미를 살펴봅니다.
MCP 2026-07-28 스펙이 핸드셰이크와 세션을 없앴다. 스티키 세션과 공유 스토리지를 걷어낼 수 있게 된 배경과, 인증 쪽에 숨은 마이그레이션 지뢰를 정리한다.
자바(Java) 프로그래밍에서 데이터를 효율적으로 분할하고 관리하는 것은 중요한 작업 중 하나입니다. 이를 위해 많은 방법이 있지만, 'partitioningBy' 메서드를 활용하는 방법은 데이터를 조건에 따라 분할하고 처리하는 데 매우 유용합니다.
In the realm of database management systems, MySQL stands tall as one of the most popular choices.
In the ever evolving landscape of data management, MySQL Heatwave has emerged as a game changing solution, revolutionizing the way businesse
시간은 현대 사회에서 가장 귀중한 자원 중 하나입니다. 시간 간격을 다루는 것은 다양한 상황에서 중요한 역할을 합니다.
현대 사회에서 날짜와 시간은 우리의 일상 생활에서 중요한 역할을 합니다. Dayjs Diff(데이제이에스 디프)는 날짜와 시간 사이의 차이를 간편하게 계산하고 다룰 수 있는 강력한 도구입니다.
Dayjs Subtract(데이제이에스 서브트랙트)는 날짜와 시간을 간편하게 계산하고 처리할 수 있는 도구입니다. 이 글에서는 Dayjs Subtract의 기능과 활용법을 살펴보며, 어떻게 사용하는지 배워보겠습니다.
프로그래밍의 핵심은 반복적인 작업을 자동화하는 것입니다. 파이썬의 For 루프는 이러한 작업을 더욱 쉽게 처리할 수 있는 강력한 도구입니다.
이 블로그에서는 Docker를 사용하여 MySQL 데이터베이스를 실행하는 방법을 상세히 알아보겠습니다. Docker는 컨테이너 기반의 가상화 기술로서, 애플리케이션과 모든 종속성을 컨테이너로 패키징하여 빠르고 효율적인 배포를 가능하게 합니다.
이 블로그에서는 Spring WebFlux의 테스트 방법에 대해 자세히 알아보겠습니다. Spring WebFlux는 Spring Framework 5에서 도입된 리액티브 프로그래밍 모델로서, 비동기적인 웹 애플리케이션을 개발할 수 있게 해줍니다.
이 블로그에서는 Spring 프레임워크와 MongoDB를 연동하는 방법에 대해 자세히 알아보겠습니다.
이 블로그에서는 Node.js와 Socket.IO를 활용하여 실시간 채팅 애플리케이션을 만드는 방법을 상세히 설명하겠습니다. 실시간 채팅 앱은 사용자들이 실시간으로 채팅 메시지를 주고받을 수 있는 기능을 제공하는 웹 애플리케이션입니다. Node.
Socket.IO는 Node.js 기반의 웹 소켓 라이브러리로서, 실시간 양방향 통신을 가능하게 해주는 도구입니다. 웹 소켓은 클라이언트와 서버 사이에 지속적으로 연결을 유지하며, 실시간으로 데이터를 주고받는데 사용됩니다. 이 글에서는 Socket.
TypeScript는 JavaScript에 타입을 추가하여 더욱 안전하고 가독성이 좋은 코드를 작성할 수 있게 해줍니다. Partial, Omit, Pick은 TypeScript에서 제공하는 유용한 타입 유틸리티입니다.
JavaScript Promise는 비동기 작업을 보다 편리하게 다룰 수 있도록 도와주는 객체입니다. 비동기 작업은 일반적으로 AJAX 요청, 파일 로딩, 데이터베이스 쿼리 등과 같이 시간이 오래 걸리는 작업을 말합니다.
JavaScript의 배열 메서드 중에서 가장 강력하면서도 다소 난해한 메서드인 'reduce'에 대해 알아보겠습니다. Reduce 메서드는 배열의 각 요소를 순차적으로 처리하면서 배열을 단일 값으로 줄여주는 함수입니다.
안녕하세요! 오늘은 JavaScript에서 문자열에서 공백을 제거하는 여러 가지 방법에 대해 알아보겠습니다. 문자열에서 공백을 제거하는 것은 데이터 처리나 사용자 입력을 다룰 때 유용한 기능입니다.
JavaScript의 replace() 메서드는 문자열에서 특정 패턴(문자열 또는 정규식)을 검색하여 해당 패턴을 새로운 문자열로 치환하는 메서드입니다. 이를 통해 문자열 내에서 원하는 부분을 변경하거나 제거하는 작업을 할 수 있습니다.
JavaScript는 동적 타입(dynamic typing) 언어이기 때문에 변수의 타입을 선언할 필요 없이, 할당되는 값에 따라 자동으로 타입이 결정됩니다. 이러한 특성으로 인해 JavaScript에서는 형변환이 자주 발생합니다.
웹 개발에서 시간 지연은 매우 중요한 역할을 합니다. 사용자 경험을 향상시키기 위해 페이지의 동작을 조절하거나 특정 작업을 지연시키는 것은 필수적입니다.
JavaScript의 querySelector() 메서드는 CSS 선택자를 사용하여 DOM(Document Object Model)에서 요소를 선택하는 데 사용되는 메서드입니다.
JavaScript의 forEach() 는 배열의 각 요소에 대해 주어진 함수를 호출하는 메서드입니다. forEach() 메서드를 사용하면 배열의 모든 요소를 반복하며, 각 요소에 대해 지정된 함수를 실행할 수 있습니다.
JavaScript의 map() 은 배열의 모든 요소에 대해 주어진 함수를 호출하여 새로운 배열을 생성하는 메서드입니다. map() 메서드를 사용하면 기존 배열의 각 요소를 변형하여 새로운 배열을 만들 수 있습니다.
JavaScript에서 배열을 정렬하는 방법에 대해 설명드리겠습니다. JavaScript에서는 Array.prototype.sort() 메서드를 사용하여 배열을 정렬할 수 있습니다.
`differenceWith` 함수는 두 개 이상의 배열 중 첫 번째 배열과 나머지 배열들 간의 차집합을 구하는 함수입니다.
Promise.all과 Promise.race는 JavaScript에서 `Promise` 객체를 다룰 때 사용되는 두 가지 메소드로, 비동기 작업을 다루는 데에 유용합니다. 이 둘의 차이점은 다음과 같습니다
lodash는 JavaScript 개발자들이 자주 사용하는 유용한 라이브러리 중 하나입니다. 이번 글에서는 lodash의 몇 가지 사용 예제를 소개하겠습니다.
NestJS는 Node.js 기반의 프레임워크로, Express와 비슷한 구조를 가지고 있지만 더욱 강력한 기능과 구조적인 편리함을 제공합니다.
AWS Lambda는 서버리스 아키텍처에서 가장 인기 있는 컴퓨팅 서비스 중 하나입니다. 이것은 개발자가 코드를 작성하고 배포할 때 인프라 관리에 대한 걱정을 덜어줍니다. 그러나 AWS Lambda는 실제 운영 환경에서 제한 사항이 있습니다.
Github Action은 강력한 자동화 도구로서, 소스 코드의 변경 사항에 대한 빠른 피드백을 제공하며, 애플리케이션의 배포 과정을 단순화할 수 있습니다.
이번 포스트에서는 Redis를 시작하는 방법에 대해 다루겠습니다.
Redis Cache는 매우 빠른 속도로 데이터를 처리할 수 있어, 많은 기업들이 Redis Cache를 도입해 성능을 향상시키고 있습니다.
Redis는 매우 빠르고 유연한 오픈소스 데이터 저장소입니다. 그러나 Redis를 사용할 때 몇 가지 주의사항이 있습니다. 이번 글에서는 Redis를 사용할 때 주의해야 할 사항을 살펴보겠습니다.
컴퓨터 소프트웨어를 개발하는데 있어서, 프로세서의 아키텍쳐는 매우 중요한 역할을 합니다. 이번 글에서는 가장 인기 있는 아키텍처인 x86과 ARM에 대해 비교하고자 합니다. 둘의 차이점은 무엇이며, 어떻게 다른지 살펴보겠습니다.
javascript 에서 array 중복을 제거하는 방법(remove duplicate value javascript)
여러개의 프로젝트 PR를 동시에 진행하면, 해당 브랜치로 checkout를 해야 하는데 브랜치 명이 아무래도 Jira 티켓명으로 브랜치를 따기 때문에 ( feature/XXXX 123 ) 내가 작업하는 PR이 어떤 브랜치인지 확인 하기 위해서는 git
vim multiline 주석(comment) 다는 방법
shell script 기초 문법, 배열, 입출력, 함수, if else, 조건식에 대해서 알아본다.
local에서 docker를 이용해서 mysql 를 셋팅하는 방법에 대해서 알아보자.
Javascript - 배열 합치기(concat, spread 연산자, push)
Javascript - 문자열 포함여부 (indexOf, includes, startsWith, endsWith)
Javascript - 문자열 자르기(split, substr, substring, slice)
해시함수, 해시 충돌과 해시 충돌을 해결하는 방법인 open addresssing과 chaining에 대해서 알아보도록 하겠습니다.
Javascript 차집합, 교집합, 배타논리적 합
mysql에서 trigger를 만드는 방법에 대해서 알아보자. DML(INSERT, UPDATE, DELETE)를 할때, BEFORE, AFTER에 어떤 동작을 추가할 수 있는 것을 의미한다.
slack remind 명령어로 remind 알림 받기
AWS Lambda Nodejs 16 버전 업그레이드 작업
vscode debugging 셋팅 하는 방법
yarn.lock 파일(잠금파일)은 무엇이고 어떤 기능을 하는가?
package.json의 version을 명시하는 방법과 틸드와 캐럿에 대해서 알아보자
javascript array to object reduce를 사용해서 배열을 객체로 변환하는 방법
다음과 같이 shell목록들이 나온다. p {pid} 로 process의 id를 넘긴다. $는 현재 프로세스의 pid를 리턴한다. 지금 현재 프로세스는 shell 이기 때문에 결과가 다음과 같이 나온다.
Prometheus,Grafan를 Docker로 띄워보고, nodejs exporter를 통해서 모니터링 대쉬보드를 만들어 보는걸 살펴보자. SoundCloud사에서 처음 개발을 했다.
SpringBoot, Mongodb, docker로 간단한 샘플 프로젝트를 만들어 보고, 주로 어디에 사용하는지에 대해서 알아보자.
github push 명령어가 제대로 동작하지 않는 이슈, personal access token 기반으로 인증이 변경됨
mackup오픈소를 활용해서 mac 환경 설정 sync 맞추기
Spring Boot 프로젝트내 서버 타임존 설정하는 방법
ApplicationRunner,CommandLineRunner를 애플리케이션 구동시 사용하는 방법에 대해서 알아보자
DB migration 툴인 flyway에 대한 사용방법을 알아보자.
Java Stream의 groupingBy의 메서드를 살펴보고, 간단한 예제를 통해서 어떻게 사용하는지 살펴보자.
Feedly에 대해서 알아보고, 구글 크롬 익스텐션을 통해서 자신이 구독한 글들을 받아볼 수 있는 설정에 대해서 알아보자.
API관련 작업을 하다가, @RequestBody로 매핑된 객체의 필드값을 validaiton하기 위해서 @Valid 어노테이션(JSR-303) 을 적용했지만, 제대로 적용이 되지 않았다. 이에 대한 해결책을 알아보자.
리눅스 tree명령어를 통해서 폴더구조 보기
스프링에서 자바 객체를 직렬화/역직렬화를 할때, 내부적으로 Jackson을 사용하는데, 자바8에 도입된 LocalDateTime 타입으로 직렬화, 역직렬화할때 이슈를 정리해보았다.
MySQL의 인덱스 종류와 내부 동작, 클러스터형 인덱스와 보조 인덱스에 대해서 알아보자.
리눅스의 파일,폴더 권한 설정과 chmod를 명령어를 이용한 파일 권한 주는 방법에 대해서 알아본다.
SSH 키생성하고, 원격서버에 접속하는 방법, 공개키 인증 방식에 대해서도 알아본다.
MySQL의 CTE란, 문법과 간단한 사용방법을 알아보자
Java의 기본 정렬과 Stream의 Sort레 Comparator를 람다식을 넘겨서 간편하게 사용하는 방법을 알아본다.
SpringBoot프로젝트, Dockerfile을 만들어서 이미지를 생성하고 배포해보자!
Intellij IDE 환경 셋팅을 Github Repository에 올려서 언제든지, IDE 환경을 동기화 시켜보자!
Buil, Execution, Deployment Build Tools Gradle Build and run 영역에서 다음과 같이 Default설정이 Gradle 로 되어있다. 이것을 모두다 IntelliJ 로 모두 변경한다.
intellij에서 find action에서 발생하는 단축키 버그를 해결하는 방법에 대해서 알아보자.
다운로드 해당 프로그램을 설치하면, left side와 right side의 팬설정이 뜬다. 보통은 자동으로 되어 있을텐데, CPU PECI에 따라 를 클릭한 후에 조금 더 낮은 온도 범위에서 Fan이 동작하도록 변경하자.
iterms에서 Shell 창에서 한글깨짐 문제에 대해서 알아보자 .
git clone https://github.com/google/styleguide 명령어로 해당 styleguide를 내려받는다. 환경설정 CodeStyle Java 메뉴를 선택하고, 위에서 받은 intellij java google style.
MySQL에서 중복 데이터를 삽입하는 3가지 방법에 대해서 알아보자.
Mac에서 자신만의 커스텀한 단축키를 지정하는 방법을 알아보자.
Spring Batch 프로젝트의 구성요소와 간단한 샘플 프로젝트를 통해서 알아보자
MySQL에서 DATE 날짜 포맷팅 하는 DATE_FORMAT 함수에 대해서 알아보자.
.gitignore에 포함시켜서, github에 올라가지 말아야 할 파일들이 올라간 경우에 어떻게 할까? .gitignore 파일에 제외시킬 해당 파일/폴더 경로를 추가한다. git add .
IntelliJ에서 컬럼 Selection 모드에 대해서 알아보고, 단축키를 통해서 작업을 쉽게 하는 방법을 알아보자.
iterms의 vim color shcema를 적용하는 방법을 알아보자.
Jetbrain ToolBox를 설치한다. Jetbrain Toolbox는 Jetbrain 사에서 제공하는 여러가지 IDE를 쉽게 관리해주는 프로그램이다. Toolbox에서 설치된 IntelliJ의 Setting을 클릭한다.
리눅스 SCP 명령어를 통한 리모트 서버로 파일복사 하는 방법
AssertJ에서 자주 사용하는 기본 문법들에 대해서 알아보자.
Java의 파일 입출력 BuffedWriter, BufferedReader, Files 에 대해서 알아보자.
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
자주 사용하는 Junit5 사용 예제
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
본 글은, 자바 ORM 표준 JPA 프로그래밍(김영한님) 책을 요약 정리한 포스팅입니다.
AssertJ의 필드값을 재귀적으로 비교해서 테스트 하는 방법에 대해서 알아보자
테스트 위생이란? 테스트 대상 코드 베이스뿐 아니라 <u 테스트 코드도 깔끔하게 유지하며</u 유지보수 하고 개선해야 함을 의미한다. 테스트를 만들려면 먼저 이름을 정해야한다.
이번시간에는 오픈소스 메세지 브로커인 RabbitMQ를 로컬에 설치하고, Spring Boot 프로젝트를 이용해서 간단하게 메세지를 전송하고, Listening 하는 샘플 프로젝트를 만들어보도록 하겠습니다.
개발자 컴퓨터 환경 셋팅에 대해서 알아보자.
spring cloud config 의 간단한 예제를 살펴보자.
JPA에서 양방향 연관관계를 매핑할때, 객체관점에서 편의 메서드 를 작성하는 방법에 대해서 알아보자. 이번에는 양방향 매핑을 할때, 객체 관점에서 어떻게 처리할지?를 고민해보자.
Java 에서 CompletableFuture가 어떻게 사용할 수 있고, 어떤식으로 발전해 왔는지 알아보자.
Junit5에 특징과 기본적인 사용법, 문법에 대해서 알아보자.
스프링 프로젝트에서 Sentry (에러 트래킹 서비스)를 연동하는 방법에 대해서 알아보자
Java의 날짜,시간관련된 역사를 알아보고, Java8버전에 추가된LocalDateTime, ZonedDateTime에 대해서 전방위적으로 살펴보자.
스프링에서 빈을 주입하는 3가지 방법에 대해서 알아보자
JPA에서 엔티티 설계시 주의사항들에 대한 요약본입니다.
Modern Java in action의 동작파라미터화 코드를 전달하는 방법에 대한 요약입니다.
Java의 Comparabl과 Compartor에 대해서 알아보고, Lambda식으로 어떻게 간편하게 구현할 수 있는지 살펴보자.
spring thymeleaf에서 기본적인 사용법, 문법에 대해서 알아보자.
Spring thymeleaf에서 Collection을 렌더링하는 방법에 대해서 알아보자
SpringBoot, JPA, H2를 이용한 간단한 RestAPI를 만들어보자.
이전 시간에 Garbage Collection #1부 JVM HotSpot에 대해서 알아보았습니다. 오늘은 Garbage Collection이 heap 영역에서 어떻게 이루어 지는 지 알아 보도록 하겠습니다.
Spring MultiPartFile 인터페이스를 이용한 파일 업로드 하는 방법을 알아보자.
스프링 컨트롤러에서 받는 객체에대한 validation 하는 방법에 대해서 알아보자
jackson에서 null값인 필드를 보여주지 않도록 지역적, 전역적으로 설정하는 방법에 대해서 알아보자
Java에서 Reflection 사용하는 방법과 간단한 DI framework 만들기
자바(Java)의 역순 정렬을 다양한 예제를 통해 살펴보겠습니다. 각 예제를 통해 역순 정렬의 활용 방법을 자세히 알아보고 실제 코드로 확인해보세요. 1. 숫자 배열 역순 정렬 2. 문자열 리스트 역순 정렬 3. 사용자 정의 객체 역순 정렬 4.
HandlerMethodArgumentResolver 인터페이스는 컨트롤러에서 파라미터 바인딩 해주는 역할을 합니다.
오늘은 Jackson 어노테이션에 대해서 알아보도록 하겠습니다. 다음과 같이 스프링 부트를 사용하면 spring boot starter web 의존성에 jackson databind 라이브러리가 추가 되어 있다.
DispatcherSevlet의 기본전략과 여러가지 유형에 대해서 알아보자. DispatcherServlet 의 초기화 전략은 다음과 같다. 초기화 구조는 거의다 비슷하기 때문에 여기에서는 initViewResolvers(context) 를 살펴보자.
Spring MVC 에 대해서 알아보자 MVC는 Model, View, Controller로 구성되어 있다.
application.properties에 존재하는 값들을 클래스(@ConfigurationProperties를 이용해서)로 빼는 방법에 대해서 알아보자.
spring web모듈을 추가하고, Spring MVC에 대해서 알아보자.
스프링의 메세지 컨버터에 대해서 알아보자.
실제 프로젝트에서 dev, stage, production과 같은 개발하는 환경이 다르다. @Profile 어노테이션을 이용해서 다른 profile을 설정하는 방법에 대해서 알아보자.
JPA 연관관계 매핑중, 실무에서 가장 많이 쓰이는 1:N (일대다) 매핑에 대해서 알아보자. 일대다 매핑을 하기 위해서 하나의 팀에 여러명의 멤버가 속해있는, 1:N 관계를 생각해보자.
Spring Data JPA의 Audit 기능에 대해서 알아보자.
멤버(Member)와 사물함(Locker) 1:1 매핑 상황을 살펴보고, cascade 옵션이 어떤 상황에서 쓰이는지 알아보자. Member Locker 단방향 1:1 매핑에 대해서 살펴보자.
기존의 JpaRepository를 상속받아서 기본적인 CRUD 기능을 사용할 수 있지만, 내가 1)커스텀하게 만들어서 사용하고 싶은 경우와 이미 JpaReposptry에서 제공하는 메서드를 새롭게 2)오버라이딩해서 사용할 수 있는 경우에 대해서 알아보
도메인 클래스 컨버터에 대해서 알아보자. 도메인 클래스 컨버터는 Spring Data Jpa를 사용하게 되면 Common 프로젝트에 있는 클래스 인데, 간단하게, id 엔티티 타입으로 변환 해주거나, 엔티티 id 로 변환해 주는 컨버터를 제공해준다.
SpringBoot와 JPA, H2를 이용한 간단한 API를 만들어보고, Junit 테스트 검증하는 것을 알아본다.
JPA에서 null처리 하는 방법에 대해서 알아 보자. JPA에서 단일 엔티티를 조회할 때, Optional객체를 리턴 받도록 설정되어 있다.
JpaRepository의 구현체 SimpleJpaRepository에서 save()메서드가 내부적으로 어떻게 동작하는지 알아보자.
JPA를 사용해서 엔티티의 일부 데이터만 가져오는 Projection에 대해서 알아보자. 다음과 같은 Comment 엔티티가 존재한다. 필요한 일부 데이터만을 담은 CommentSummary 인터페이스를 만든다.
프록시의 기본과, JPA에서 fetch 전략이 어떤 것들이 있는 지 알아보자. PA에서 식별자로 엔티티 하나를 조회할 때 EntityManager.find() 를 사용한다. 이 메서드는 영속성 컨텍스트에 엔티티가 없으면 데이터 베이스를 조회한다.
JPA에서 쿼리 메서드를 정의하는 방법에 대해서 알아보자. CREATE 메서드 이름을 분석해서 만듬 USE DECLARED QUERY 미리 정의해둔 쿼리를 찾아서 사용 CREATE IF NOT FOUND 기본 전략 미리 정의해둔 쿼리 찾아서 없으면 메
JPA에서 QueryDsl를 사용하는 방법에 대해서 알아보자. QueryDSL은 쿼리 domain specific language로 도메인에 맞게 쿼리를 프로그링 할 수 있다는 것이다.
Spring Data Jpa에서 제공하는 JpaRepository 의 구현체인 SimpleJpaReposity 의 @Transactional 을 어떻게 사용하는지 살펴보고, 실제 우리 서비스에서 어떻게 적용하면 좋을지에 대해서 생각해보자.
@SpringBootApplication 어노테이션에 대해서 알아보자.
Bean(빈)이란 무엇인가, Bean의 라이프사이클, Bean을 등록하는 방법에 대해서 알아보자
빈 순환 참조가 왜 발생하는지, 해결 방식은 무엇인지에 대해서 알아보자
스프링 부트가 가지고 있는 3가지 특징에 대해서 알아보자
Spring Data Common 프로젝트가 무엇이고, 여러가지 다양한 구현체들에 대해서 알아보자
applicationContext가 등록되기 전에 발생한 이벤트를 Listen하는 리스너를 등록하려면 어떻게 해야할까? SampleListner를 만들고, ApplicationListenr 를 구현한다. Generic으로 발생할 이벤트를 명시해 준다.