본문 바로가기
메뉴

CS13

Claude Opus 4.6 그리고 GPT-5.3-Codex 등장

2월 6일 거의 동시에 두 모델이 발표됐다. 2월 3일에 Sonnet 5가 나올 것 같다하더니 이거 기다리다가 Opus 4.6이 먼저 나와버렸다. 오랫동안 새로운 모델을 기다려왔는데, 뭐가 좋아졌는지 살펴보자. Claude Opus 4.6https://www.anthropic.com/news/claude-opus-4-6 Claude Opus 4.6We’re upgrading our smartest model. Across agentic coding, computer use, tool use, search, and finance, Opus 4.6 is an industry-leading model, often by wide margin.www.anthropic.com 1M 토큰 컨텍스트를 제공한다(베타)...

[Java] 제네릭/와일드카드/타입 소거 정리

제네릭과 타입 파라미터제네릭은 클래스/인터페이스/메서드가 다룰 타입을 타입 파라미터로 받아, 컴파일 시점에 타입을 강하게 체크한다.타입 파라미터는 관례적으로 T, E, K, V 같은 단일 대문자를 많이 쓴다.T : TypeE : ElementK : KeyV : Value사용하는 이유컴파일 타임 타입 안정성: 잘못된 타입 사용을 컴파일 단계에서 막는다.캐스팅 제거: 컬렉션에서 꺼낼 때 불필요한 캐스팅과 런타임 예외 위험을 줄인다.raw type을 쓰면 컴파일러가 타입을 제대로 검사하지 못해, 나중에 꺼내 쓸 때 캐스팅이 필요하고 런타임 오류 가능성이 커진다.제네릭 클래스/인터페이스선언부에 하나 이상의 타입 파라미터를 두면 제네릭 클래스/인터페이스라 부른다. 타입 파라미터 도입으로 타입 변수(Type Var..

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 부록

10장 11장 작성은 건너뛰었는데, 이 쪽은 세부적으로 포스팅하려고 한다. (DDD, CQRS등) 성능 테스트부하 테스트 (load)목적: 예상되는 부하에서 시스템이 요구 성능을 만족하는지 확인하기 위한 테스트TPS/RPSp95/p99 latency에러율스트레스 테스트 (stress)목적: 시스템을 한계 이상으로 내몰아 최대 성능을 확인하기 위한 테스트최대 수용량 확인붕괴 지점 이후에 어떻게 동작하는가?지속 부하 테스트 (soak)목적: 일정 부하를 장시간 유지했을 때 버틸 수 있는지 확인하기 위한 테스트커넥션/메모리 누수 확인성능 저하 확인스파이크 테스트 (spike)목적: 갑작스런 트래픽 급증에 대해 시스템의 반응성과 안정성 확인하기 위한 테스트회복력 확인오토스케일링/레이트 리밋 등 설계 점검용어포화..

[Java] try/catch/finally: 바이트코드 분석

용어정상 완료(normal completion): 문장이 모든 단계를 정상적으로 수행하고 끝나는 것비정상 완료(abrupt completion): return, throw, break, continue 등으로 문장이 중간에 특정 이유로 인해 즉시 종료되는 것동작 흐름try-finally / try-catch-finally는 큰 틀에서 아래 규칙으로 이해하면 된다. try 블록을 실행하면try 블록 정상 완료 → finally 실행try 가 예외로 비정상 완료 → (예외 잡을 수 있으면 catch 블록 실행) → finally 블록 실행try 가 예외가 아닌 다른 이유로 비정상 완료 → finally 블록 실행그런데 중요한 점이 하나 있다.원래 결과가 무엇이든, finally 실행 중 비정상 완료(예: r..

[Java] 중첩 클래스(Nested class) 정리 - 바이트코드 분석을 곁들인

중첩 클래스(Nested class)분류중첩 클래스(nested class): 다른 클래스/인터페이스 안에 선언된 클래스 전체내부 클래스(inner class): static 이 아닌 중첩 클래스인스턴스 멤버 클래스(non-static member class)로컬 클래스(local class)익명 클래스(anonymous class)정적 멤버 클래스(static nested class) 왜 사용하는가?논리적 그룹화 : 특정 클래스에서만 사용되는 클래스가 있다면, 그 안에 포함시켜서 함께 두는 게 자연스럽다. "헬퍼 클래스" 같은 것을 중첩시키면 패키지 구조도 깔끔해진다.캡슐화 강화 : 클래스 B가 클래스 A의 멤버에 접근해야 하는데, 해당 멤버들을 private 으로 숨겨야 하는 상황이 있을 수 있다. ..

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 8, 9장

이번 장에서는 보안과 리눅스 명령어와 관련된 내용이 나온다. 8장: 실무에서 꼭 필요한 보안 지식인증(authentication) : 사용자가 누구인지 확인하는 과정인가(authorization) : 사용자에게 자원에 접근할 수 있는 권한 부여 인증에 성공하면 서버는 클라이언트에 토큰을 제공한다. 여기서 토큰은 넓은 의미로 ‘신원 증명 수단’으로 이해하면 된다.인증(Authentication)세션 기반 (Stateful)서버가 세션 ID 발급실제 인증 정보는 세션 ID를 key로 한 서버 측 저장소(메모리, DB, Redis 등)에 저장클라이언트는 세션 ID만 가지고 요청하고, 서버는 매 요청마다 세션 저장소를 조회해 사용자를 확인세션 정보를 저장소에 저장하기 때문에 작지만 용량을 차지한다. (사용자가..

[Java] 생성자 초기화 순서 정리: 5단계에서 7단계로 (feat. JEP 513)

이것이 자바다 책을 보면서 조금 애매한 설명이 있어서 추가로 공부하게 되었다. [레퍼런스] Chapter 12. Execution | Oracle Java SE 21 흔히 우리가 알던 자바 버전에서는 객체를 생성하게 되면 다음과 같은 순서로 진행된다.메모리 공간 할당모든 인스턴스 변수(상위 클래스 포함) 기본값으로 초기화새 객체를 초기화 하기 위해 생성자 처리 5단계 진행예외 없이 정상적으로 생성자 처리가 끝나면 새로 생성된 객체에 대한 참조가 결과로 반환 생성자 체이닝 (Constructor Chaining)생성자가 다른 생성자를 호출하는 메커니즘두 가지 형태가 있다.super(...) → 부모 클래스 생성자 호출this(...) → 같은 클래스의 다른 생성자 호출 생성자 처리 5단계생성자 인자를 생..

이것이 자바다 - 5~6장

책을 읽으면서 새로 알게된 부분 / 추상적으로 알던 부분을 정리하려고 노력했다.CS를 잘 모르거나 자바를 진짜 처음보는 초심자에게는 책 내용 이해하기가 너무 힘들 것 같은데 기초...가 맞나? 싶다현재 시점에서 책을 보며 정리하기를 정말 잘했다고 생각한다.5장: 참조 타입JVM Runtime Data Area오라클 레퍼런스 - Run-Time Data AreasMethod Area클래스 로더에 의해 로드된 클래스/인터페이스 관련 메타데이터(바이트 코드, 시그니처, 런타임 상수 풀 등)가 저장됨모든 스레드가 공유HotSpot VM에서 Java 7까지는 PermGen, Java 8부터 Metaspace로 관리됨Run-Time Constant Pool : 컴파일 타임에 알려진 숫자 리터럴, 런타임에 해석되거나..

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 6, 7장

이번 장에는 책에서 반복적으로 다뤄지는 내용들이 많이 포함되어 있었다.6장. 동시성Java에서의 동시성 제어synchronized (모니터)Lock자바에 이렇게 락이 많은지 처음알았다. 아래말고도 더 있다LockReadWriteLockReentrantLockReentrantReadWriteLockStampedLock낙관적 읽기쓰기 락읽기 락Semaphore세마포어에서 퍼밋 획득 (P 연산 → wait)코드 실행퍼밋 반환 (V 연산 → signal)Atomic 타입들기본적으로 CAS(Compare And Swap) 방식으로 구현되어 있음(CAS를 이용한 Lock-Free 자료구조 만들어보기)DB와 동시성비관적 락 (선점 락)실패할 가능성이 높을 때 사용한다.트랜잭션이 select ~ for update 로..

주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 - 5장

이번 주차에는 5장 하나만 나가기로 했다. 비동기 연동비동기 방식을 사용해도 되는 경우연동에 약간의 시차가 생겨도 문제가 되지 않음실패했을 때 재시도가 가능함실패했을 때 나중에 수동으로 처리 가능실패했을 때 무시해도 괜찮음비동기 연동을 구현하기 위해 아래에 5가지 방식 소개 별도 스레드로 실행Thread를 생성하는 방법java.lang.Thread를 이용해 스레드 객체를 직접 생성한다.// Runnable 함수형 인터페이스를 구현한 인스턴스를 파라미터로new Thread(**Runnable** instance).start();// 함수형 인터페이스 람다식으로 변경 가능new Thread(() -> code).start();스레드 풀 사용ExecutorService 를 이용각 워커 스레드는 OS 네이티브 ..

보호된 글

비밀번호를 입력하세요