본문 바로가기

CS

(27)
@PathVariable vs @RequestParam @PathVariable@Target(PARAMETER)@Retention(RUNTIME)@Documentedpublic @interface PathVariable 설명@PathVariable은 메서드 파라미터가 URI 템플릿 변수에 바인딩되어야 함을 나타냅니다. @RequestMapping으로 정의된 핸들러 메서드에서 지원됩니다.예를 들어 /users/{id} 같은 경로에서 id를 메서드 파라미터로 받기 위해 사용합니다.만약 파라미터 타입이 Map이라면, 모든 경로 변수 이름과 값을 자동으로 맵에 채웁니다. 사용 예시@GetMapping("/users/{id}")public ResponseEntity getUser(@PathVariable Long id) { return userService.fi..
[Spring boot] Gradle Toolchains (3/3) 설치 경로, 우선순위, 플러그인에서의 Tool Chain 활용이 글은 Gradle Toolchains 공식 문서의 마지막 편으로, tool chain 설치 경로 구성, 우선순위 규칙, plugin 또는 커스텀 task에서의 활용, Alpine 환경 제한사항까지 포함합니다. 📁 Tool Chain 설치 경로 수동 지정자동 감지가 부족하거나 비활성화된 경우, tool chain 경로를 명시적으로 Gradle에 알려줄 수 있습니다. 환경 변수 기반 지정환경 변수 JDK8, JRE17이 유효한 Java 설치 경로를 가리킨다고 가정할 때:org.gradle.java.installations.fromEnv=JDK8,JRE17Gradle은 해당 환경 변수를 확인하여 설치된 Java로 간주합니다. 설치 경로 직접 지..
[Spring boot] Gradle Toolchains (2/3) 작업 단위 설정과 고급 Tool Chain 구성이 글은 Gradle 공식 문서의 한국어 번역 두 번째 편으로, 작업(Task) 단위에서의 tool chain 구성 방법과, Java vendor 필터링, GraalVM 설정 등 고급 기능을 다룹니다. 🔧 작업(Task) 단위 Tool Chain 구성특정 작업에서 사용하는 Java tool chain을 세부적으로 조정하려면, 해당 작업에 어떤 실행 도구를 사용할지 명시할 수 있습니다.예: Test 작업은 어떤 java 실행 파일을 사용할지 결정하는 JavaLauncher 속성을 노출합니다.다음은 컴파일 작업은 Java 8로, 테스트는 Java 17로 설정하는 예시입니다:// list/build.gradletasks.withType(JavaCompile).c..
[Spring boot] Gradle Toolchains (1/3) Java Toolchains 개념과 프로젝트 설정Gradle 6.7부터 도입된 Java Toolchain 기능은, 여러 Java 버전을 다루는 프로젝트에서 빌드 환경을 일관되게 유지하고 예기치 않은 오류를 방지하기 위해 사용됩니다. 🧩 Java Toolchain이란?여러 프로젝트에서 동시에 작업하거나, 하나의 프로젝트 내에서도 하위 모듈별로 서로 다른 Java 언어 수준을 요구하는 경우가 있습니다. 이는 하위 호환성 등의 이유로 코드베이스의 일부가 특정 Java 버전에 고정되어야 하기 때문입니다.이러한 상황에서는 빌드 머신마다 여러 버전의 동일한 도구(즉, Toolchain)를 설치하고 관리해야 합니다.Java Toolchain은 Java 프로젝트를 빌드하고 실행하는 데 필요한 도구들의 집합이며, 일반..
[CS] HTTP 상태 코드 HTTP 상태 코드(Http Status Code)웹에서 클라이언트와 서버는 데이터를 주고받을 때 일정한 규칙을 따릅니다. 그 규칙 중 대표적인 것이 바로 HTTP(HyperText Transfer Protocol)입니다.HTTP 프로토콜에서는 클라이언트가 보낸 요청이 서버에서 어떤 상태로 처리됐는지를 숫자로 알려주는 체계가 있는데, 이것을 HTTP 상태 코드(Status Code)라고 합니다.  HTTP 상태 코드는 서버가 클라이언트의 요청을 처리한 결과를 나타내는 3자리 숫자입니다. 이 상태 코드를 통해 개발자는 요청의 성공 여부, 오류 원인, 리소스의 상태 등을 손쉽게 파악할 수 있습니다. 상태 코드는 크게 5가지 범위로 구분되는데, 각 범위마다 다음과 같은 의미를 가집니다.1xx (정보 제공) :..
[강화 학습] 4. 가치 함수 가치 함수강화학습에서 상태나 행동의 가치를 계산하여 가치가 큰 상태나 행동을 선택하는 방식으로 학습상태나 행동의 가치를 수익을 이용해 정량화함각 상태의 가치를 상태가치(State Value), 각 상태에서 가능한 행동의 가치를 행동가치(Action Value) 라고 함상태가치와 행동가치는 모두 기대 수익 G를 통해 계산됨알고리즘에 따라 상태가치나 행동가치만 사용하거나 둘 다 사용하는 경우도 있음 상태가치 함수 (State Value Function)특정 상태 s에서 얻을 수 있는 기대 수익 G의 기댓값상태 s의 상태가치 Vπ(s)는 정책 π를 따를 때 얻을 수 있는 기대 수익을 의미함목표 상태에 가까울수록 상태가치는 높은 값을 가짐도달했을 때의 상태가치와 도달했을 때 앞으로 받게될 보상의 합은 같다고 봐..
[강화 학습] 3. 강화 학습의 기본 요소 - 2 보상 (Reward)에이전트가 취한 행동에 대해 환경으로부터 좋고 나쁨의 평가를 수치적으로 받는 것잘했으면 (+) 보상, 잘못했으면 (-) 보상을 받음상태 st에서 행동 at를 수행하면 환경으로부터 에이전트의 행동을 평가받고, 보상 rt+1을 받음보상이 rt+1 인 이유는 에이전트가 상태 s에서 s'로 이동한 후 행동 평가가 이루어지기 때문에이전트는 의사결정만 하고 실제 행동 실행은 환경에서 이루어짐예시: 자율주행 자동차의 경우 의사결정은 AI가, 움직임은 자동차(환경)가 수행보상값의 절대적인 크기보다 상대적인 크기가 중요보상이 한 가지 종류라면 1이나 100이나 10000이나 결과적으로 동일함강화학습에서 보상값 설정은 매우 중요하며, 이론적으로 정립된 방식이 없음행동 선택은 상태 자체가 아닌 보상값에 ..
[강화 학습] 2. 강화 학습의 기본 요소 - 1 환경 (Environment)강화학습에서 학습하려는 대상이나 문제 자체에이전트를 제외한 모든 것이 환경에 포함됨예시:로봇의 미로 탐색 → 미로자동 주식 트레이딩 → 주식 시장인공지능 바둑 → 바둑판환경의 종류연속 공간(Continuous Space): 현실 세계처럼 연속적으로 이어진 공간이산 공간(Discrete Space): 연속공간을 바둑판처럼 일정 구간으로 나눈 공간대부분의 강화학습 연구는 이산공간을 사용하며, 연속공간은 이산공간으로 변환하여 사용함변환 시 오차가 발생하며, 변환 방법에 따라 문제 난이도가 달라짐문제를 쉽게 풀기 위해서는 환경을 최대한 단순화해서 정의하는 것이 중요 상태 (State, S)학습하는 주체(에이전트)가 위치하거나 감지하고 있는 상태의 정보예시:로봇 미로 탐색 → 로봇의 ..