2023/07

· AI
역전파는 Deep Learning의 기본 알고리즘으로, 신경망이 오류를 통해 학습하고 성능을 개선하는 방법을 이해하는 데 필수적입니다 역전파라 불리는 이유는, 이전 단계에서 계산된 오차가 네트워크를 통해 다시 전파되어 출력 계층에서 입력 계층으로 이동하기 때문입니다 이 과정에는 초기 순방향 통과와 반대 방향으로 네트워크의 출력 계층에서 입력 계층으로 전파되는 계산이 포함됩니다. 이 역전파는 미적분학의 Chain Rule에 크게 의존합니다. 모델 구성 입력 레이어 프로세스는 초기 데이터가 네트워크에 공급되는 입력 레이어에서 시작됩니다. 각 입력에는 입력의 중요성을 나타내는 가중치가 할당됩니다. 이러한 가중치는 일반적으로 무작위로 초기화됩니다. 숨겨진 레이어 가중치가 적용된 입력은 하나 이상의 숨겨진 레이어..
· AI
역전파(Back-propagation) - 역전파 : Chain Rule을 통해 경사 계산을 작게 분해 후 결합하여 최종 기울기를 얻는 프로세스a 역전파는 신경망에서 사용할 가중치 계산에 필요한 기울기를 계산하기 위해 인공 신경망에서 사용하는 방법입니다. 네트워크 가중치에 대한 손실 함수의 기울기를 계산하기 위해 체인 규칙을 사용합니다. 목적 역전파의 목적은 네트워크의 가중치를 조정하여 손실 함수를 최소화하는 것입니다. 가중치에 대한 손실 함수의 기울기를 계산한 다음 이 기울기를 사용하여 손실을 줄이는 방향으로 가중치를 업데이트합니다. 사용: 역전파는 신경망의 훈련 단계에서 사용됩니다. Autograd Autograd는 Tensor의 모든 작업을 자동으로 구분하는 PyTorch 패키지입니다. 이것은 실행..
· DEV/Java
@Transactional 어노테이션은 Spring에서 데이터베이스 트랜잭션의 범위를 정의하기 위해 사용됩니다 이 어노테이션은 메서드(또는 클래스)를 트랜잭션 내에서 실행되도록 표시합니다. @Transactional 어노테이션은 클래스 수준, 메서드 수준 또는 둘 다에 적용할 수 있습니다. 클래스 수준에 적용하면 해당 클래스 내의 모든 메서드에 대한 기본 트랜잭션 동작이 설정됩니다. 트랜잭션 전파 트랜잭션 전파는 한 메서드에서 다른 메서드를 호출할 때 트랜잭션 동작이 어떻게 전파되는지를 정의합니다. 스프링은 @Transactional 어노테이션의 propagation 속성을 통해 다양한 전파 유형을 지원합니다. 일반적인 전파 유형은 다음과 같습니다: REQUIRED 메서드는 트랜잭션 내에서 실행되어야 합..
· DEV/Java
A - Atomicity Spring Boot에서, [[@Transactional]] 어노테이션을 사용하여 메서드의 원자성을 보장할 수 있습니다. 이 어노테이션은 메서드에서 발생하는 모든 데이터베이스 연산이 하나의 트랜잭션으로 처리되도록 합니다. 만약 메서드 내에서 어떤 예외가 발생하면, 해당 트랜잭션의 모든 연산은 롤백됩니다. @Service public class UserService { @Autowired private UserRepository userRepository; @Transactional public void updateUserEmail(Long id, String newEmail) { User user = userRepository.findById(id).orElseThrow(() -..
· DEV/Java
서비스와 리포지토리 계층 책임의 차이점 서비스 계층과 리포지토리 계층의 주요 차이점은 다음과 같은 책임입니다. 서비스 레이어 비즈니스 로직을 구현 리포지토리 레이어와 상호 작용하여 데이터를 검색 및 저장 트랜잭션을 관리 리포지토리 레이어 데이터 액세스 및 저장 엔터티에 대한 CRUD 작업을 수행 데이터베이스와 상호 작용 서비스 계층은 비즈니스 규칙 및 작업 실행에 중점을 두는 반면 리포지토리 계층은 데이터 지속성과 관련됩니다. 1 단계: 컨트롤러 계층에서 요청 받기 먼저 서비스 계층은 컨트롤러 계층에서 요청을 받습니다. 요청에는 컨트롤러가 클라이언트로부터 수신하고 검증한 데이터가 포함될 수 있습니다. @Service public class UserService { @Autowired private Use..
· DEV/Java
- Controller의 책임 : HTTP 요청 검증과 전처리 컨트롤러 계층은 웹 애플리케이션에서 들어오는 요청의 진입점이며 이러한 요청을 처리하는 특정 역할을 합니다. Service 계층과의 차이점 컨트롤러 레이어 HTTP 요청 및 응답을 처리하고, 요청을 검증하고, 비즈니스 로직을 서비스 레이어에 위임합니다. 서비스 계층 비즈니스 로직을 포함하고 데이터 검색 및 저장을 위해 저장소 계층과 상호 작용하며 트랜잭션을 관리할 수 있습니다. 컨트롤러 계층은 비즈니스 규칙이나 데이터 스토리지와 관련이 없는 반면 서비스 계층은 HTTP 프로토콜 세부 정보를 처리하지 않습니다 1단계: 요청 받기 컨트롤러 계층은 클라이언트로부터 들어오는 HTTP 요청을 받습니다. 이러한 요청을 적절한 처리기 메서드로 라우팅하는 일..
· DEV/Java
자바에서 특정한 예외 상황을 더 명확하게 표현하고자 할 때는 커스텀 예외 클래스를 정의할 수 있습니다. 커스텀 예외 클래스를 사용하면 예외가 발생한 원인이나 상황에 대한 자세한 정보를 담을 수 있습니다. Exception 400 유효성 검사 실패나 잘못된 요청을 의미합니다 @Getter public class Exception400 extends RuntimeException { public Exception400(String message) { super(message); } public ApiUtils.ApiResult body() { return ApiUtils.error(getMessage(), HttpStatus.BAD_REQUEST); } public HttpStatus status() { r..
· DEV/Java
HTTP 상태 코드는 HTTP 응답의 일부로, 서버가 클라이언트의 요청을 어떻게 처리했는지를 나타냅니다. 상태 코드는 클라이언트에게 요청의 성공, 실패 및 원인에 대한 정보를 제공합니다. 상태 코드를 Body에 담는 이유 상태 코드를 HTTP 응답의 본문(Body)에 포함시키는 이유는 두 가지 주요한 이유가 있습니다: 1. 상세한 정보 제공 상태 코드만으로는 에러의 세부 사항을 충분히 설명할 수 없습니다. 본문에 상태 코드와 함께 에러 메시지를 제공하면, 클라이언트는 에러의 원인을 더 정확하게 파악할 수 있습니다. 2. 응용 프로그램의 일관성 유지 본문에 상태 코드를 포함시키면, 응용 프로그램 내에서 에러 응답의 형식을 일관되게 유지할 수 있습니다. 보통 헤더에 상태 코드를 포함해서 반환을 하는데, 이 ..
· DEV/Java
- DTO에 @Pattern을 붙이면 된다 멘토님께서는 정규 표현식을 공부하는 것을 추천하지 않는다고 한다. ChatGPT에게 물어보면서 테스트를 진행하는걸 추천하신다 요청 DTO에 정규표현식 적용 DTO(Data Transfer Object)를 생성하고, @Pattern 어노테이션을 적용하면 됩니다. import javax.validation.constraints.Pattern; public class UserRequest { @Getter @Setter public static class JoinDTO { @NotEmpty @Pattern(regexp = "^[\\w._%+-]+@[\\w.-]+\\.[a-zA-Z]{2,6}$", message = "이메일 형식으로 작성해주세요") private Str..
DTO(Data Transfer Object)는 화면 과의 통신시 인터페이스와 비즈니스 로직 간의 데이터 전달을 담당하는 객체입니다 DTO 유효성 검사는 다음과 같은 목적을 가지고 수행 됩니다 1. 데이터의 유효성 확인 DTO 객체의 데이터 필드에 입력 된 값이 올바른 형식, 범위, 제약 조건을 충족하는지 확인합니다 숫자 필드에 숫자가 입력 되고, 문자열 필드에는 문자열이 입력 되어야 합니다 2. 비즈니스 규칙 준수 확인 DTO 객체가 비즈니스 규칙을 준수하는지 검사합니다. 주문을 나타내는 DTO에서 수량 필드는 음수가 될 수 없고, 가격 필드는 0 이상이어야 한다는 비즈니스 규칙이 있다면 검증 해야 합니다 3. 보안 검사 DTO 객체의 데이터가 보안 요구사항을 충족하는지 확인합니다 사용자의 비밀번호를 ..
berom
'2023/07 글 목록 (3 Page)