본문 바로가기

전체 글

(470)
[Spring Boot] Validation 유효성 검사 유효성 검증의 필요성클라이언트가 회원가입 요청을 보낼 때, 서버는 사용자의 이름, 나이, 이메일, 아이디, 비밀번호, 생일, 가입 날짜 등이 올바른 형식인지 확인해야 합니다. 예를 들어:이름을 입력하지 않았을 때는?나이가 -10살이나 200살일 때는?비밀번호가 "123"처럼 보안에 취약할 때는?이러한 검증을 if 문을 통해 하나하나 확인할 수 있지만, 검증할 항목이 많아질수록 코드의 길이는 길어질 수밖에 없습니다. 각 항목에 대해 개별적으로 검증하면 코드가 길어지고 중요한 서비스 로직이 누락될 수 있습니다.Spring Boot에서 유효성 검증이러한 문제를 쉽게 해결하기 위해 Spring Boot에서는 spring-boot-starter-validation 의존성을 사용할 수 있습니다. Validation..
[Spring Boot] Web에서 응답 만드는 방법 - Response Entity Spring Boot에서 응답을 만드는 방법Spring Boot에서 응답을 생성하는 방법에는 4가지가 있습니다.String일반 Text Type 응답Object자동으로 JSON 변환되어 응답 상태값은 항상 상태 코드 200(OK)ResponseEntityBody의 내용을 Object로 설정하고 상황에 따라서 HTTP 상태 코드를 설정@ResponseBodyRestController가 아닌 Controller에서 JSON 응답을 내릴 때 사용 ResponseEntity 반환ResponseEntity는 Object 타입으로 반환할 때보다 조금 더 상세하게 반환하고 싶을 때 사용하는 방식입니다.알아두어야 할 것@RestController는 기본적으로 JSON을 반환하는 라우터입니다. String 타입으로 반환..
[컴퓨터 구조] CPU의 ALU ALU란?ALU는 Arithmetic Logic Unit의 약자로, 산술 논리 연산 장치입니다. 즉, ALU는 계산을 수행하는 부품입니다.계산을 위해 필요한 요소계산을 하기 위해서는 연산자와 피연산자가 필요합니다. 예를 들어, 1과 2를 더하는 계산을 해봅시다.피연산자: 1, 2연산자: ADD (더하기)피연산자와 연산자는 어디에서 가져올까요?이들은 메모리에서 CPU가 명령어를 읽어올 때 가져오게 됩니다.ALU 작동 과정명령어 가져오기: CPU가 메모리에서 1번지에 있는 명령어를 가져옵니다.명령어 저장: 가져온 명령어를 레지스터에 저장합니다.명령어 해독: 제어장치(CU)가 명령어를 해독합니다. 피연산자가 주소로 지정되어 있으면, 해당 주소에 있는 값을 가져와 다른 레지스터에 저장합니다. 이때 제어장치는 연..
[Spring Boot] Rest API Put 메서드 + boolean is 변수명의 문제점 Method의미CRUD멱등성안전성Path VariableQuery ParameterDataBodyGET리소스 취득R (Read)OOOOXPOST리소스 생성, 추가C (Create)XXO△OPUT리소스 갱신, 생성U / CUpdate, CreateOXO△O PUT 메서드PUT 메서드는 기본적으로 데이터를 갱신하며, 갱신할 데이터가 없을 시에는 새로운 데이터를 생성하는 역할을 합니다.특징:Path Variable: 가질 수 있습니다.Query Parameter: 사용할 수는 있지만 데이터를 필터링하는 역할로 사용하기에는 적합하지 않습니다.DataBody: 가질 수 있습니다.멱등성과 안전성PUT 메서드는 멱등성을 가집니다. 즉, 같은 요청을 여러 번 보내더라도 결과가 항상 동일하게 유지됩니다. 하지만 데이터가..
[Spring Boot] Rest API Post 메서드 Method의미CRUD멱등성안전성Path VariableQuery ParameterDataBodyGET리소스 취득R (Read)OOOOXPOST리소스 생성, 추가C (Create)XXO△O POST 메서드POST 메서드는 리소스를 생성하거나 추가하는 역할을 합니다. 이는 CRUD에서 Create를 담당합니다.특징Path Variable: 가질 수 있습니다.Query Parameter: 사용할 수 있지만, 주로 사용하지 않습니다.DataBody: 가질 수 있습니다.Query Parameter 사용의 문제점Query Parameter는 웹 애플리케이션에서 특정 데이터나 리소스를 필터링하거나 검색하는 데 사용됩니다. 하지만 다음과 같은 문제점이 있습니다:주소 노출: Query Parameter는 URL에 포함..
[프로그래머스] 괄호 회전하기 코드 힌트문자열 회전: 문자열을 회전시켜 모든 가능한 상태를 검사해야 합니다. 저는 이를 위해 substring 메서드를 사용했습니다. StringBuilder등 다양한 방법으로 회전시켜도 상관 없습니다스택을 이용한 괄호 매칭: 스택을 이용해 괄호의 짝을 맞춥니다. 열린 괄호가 스택에 쌓이고, 닫힌 괄호가 들어올 때 스택의 꼭대기와 짝이 맞으면 스택에서 제거합니다.올바른 괄호 문자열 판별: 모든 문자를 검사한 후 스택이 비어있다면, 해당 문자열은 올바른 괄호 문자열입니다.  정답은 더보기 클릭더보기더보기import java.util.Stack;class Solution { public int solution(String s) { int result = 0; /..
[Spring Boot] Rest API GET 메소드(2) GET 메소드 간단한 응답 코드 구현클래스 경로 라우터 지정하기@RequestMapping("/경로")는 클래스에 사용되어 해당 경로로 오는 요청을 해당 클래스에서 처리할 수 있게 합니다.이를 사용하면 코드의 가독성과 유지보가 쉬워집니다.예시 코드: import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/api") // 클래스에 @RequestMapping("/경로")를 지정한다p..
[프로그래머스] N개의 최소공배수 코드 힌트최대공약수(GCD) 계산: gcd 메소드는 두 숫자 n과 m의 최대공약수를 계산합니다. 유클리드 호제법을 사용하여 효율적으로 계산합니다. 이 방법은 n % m의 나머지가 0이 될 때까지 반복하여 두 숫자의 최대공약수를 찾습니다.최소공배수(LCM) 계산: lcm 메소드는 두 숫자 n과 m의 최소공배수를 계산합니다. 최소공배수는 두 숫자의 곱을 그들의 최대공약수로 나누어 계산됩니다.n * m / 최대공약수(gcd)배열의 최소공배수 계산: 배열의 모든 요소에 대해 최소공배수를 차례로 계산합니다. 초기값으로 배열의 첫 번째 요소를 설정하고, 나머지 요소들과의 최소공배수를 순차적으로 계산합니다. 정답은 더보기 클릭더보기더보기더보기더보기class Solution { public int solution..