본문 바로가기

분류 전체보기179

[코딩테스트] 순열, 조합, 중복순열, 중복조합 1. 순열 (Permutation) 설명: 순서를 고려하며, 중복 없이 선택하는 경우. • 공식: P(n, r) = \frac{n!}{(n-r)!} 여기서  n 은 원소의 개수,  r 은 선택할 개수. 예제: 숫자 1, 2, 3 중에서 2개를 선택 (순서 고려).• P(n, r) = n!/(n-r)! • P(3, 2) =3!/(3-2)! = 6  • 결과: 12, 13, 21, 23, 31, 32 (총 6개)  2. 조합 (Combination) 설명: 순서를 고려하지 않고, 중복 없이 선택하는 경우. • 공식: C(n, r) = n!/r(n-r)! 예제: 숫자 1, 2, 3 중에서 2개를 선택 (순서 무시). • C(3, 2) = 3! / 2 * (3-2)!= 3  • 결과: 12, 13, 23 .. 2025. 1. 8.
[Spring] I/O 작업, CPU작업 I/O 작업과 CPU 작업: 개념 및 동작 방식 1. I/O 작업 (Input/Output) 개념 • I/O 작업은 **외부 시스템(디스크, 네트워크, DB 등)**과 데이터를 주고받는 작업입니다. • CPU가 아닌 하드웨어 장치와 통신하며, 시간이 오래 걸릴 수 있습니다. • 예: 파일 읽기/쓰기, 네트워크 요청, 데이터베이스 조회 등. 특징 • 상대적으로 속도가 느림 (네트워크 지연, 디스크 접근 시간 등). • CPU는 이 작업 중에 대기 상태로 남아 있을 수 있음. 동작 방식 1. 프로세스는 I/O 작업 요청을 보냄. 2. 하드웨어 장치(디스크, 네트워크 등)가 작업을 수행. 3. 작업 완료 후, 프로세스는 결과를 받음.  2. CPU 작업 개념 • CPU 작업은 데이터를 계산하거나 로직을 처리하.. 2025. 1. 6.
[Spring] Spring에서의 동기 비동기 동기와 비동기의 이해 및 활용 정리 1. 기본적인 개념 동기(Synchronous) 실행 • 정의: 작업이 순차적으로 실행되며, 하나의 작업이 완료되어야 다음 작업이 실행됩니다. • 특징: • 요청마다 하나의 쓰레드가 할당됩니다. • 작업 중에 **I/O 작업이 발생하면 해당 쓰레드는 차단(Blocking)**되어 대기합니다. • CPU 작업과 I/O 작업이 같은 쓰레드에서 처리됩니다. • 문제점: • I/O 작업 대기 시간이 긴 경우, 쓰레드가 낭비됩니다. • 요청이 많아지면 쓰레드 풀의 크기를 초과하여 병목 현상이 발생할 수 있습니다. 비동기(Asynchronous) 실행 • 정의: 작업이 병렬적으로 실행되며, I/O 작업 중에는 쓰레드가 반환되어 다른 작업에 사용됩니다. • 특징: • I/O 작업 .. 2025. 1. 6.
[Spring] Jackson Jackson이란? Jackson은 자바에서 JSON 데이터를 직렬화(Serialization)하고 역직렬화(Deserialization)하는 오픈소스 라이브러리입니다. **JSON (JavaScript Object Notation)**은 가볍고 가독성이 좋은 데이터 포맷으로, 대부분의 애플리케이션에서 데이터를 송수신할 때 사용됩니다. Jackson은 빠른 성능, 유연성, 강력한 커스터마이징 덕분에 가장 널리 사용되는 JSON 처리 라이브러리 중 하나입니다. 스프링 프레임워크에서도 기본 JSON 직렬화/역직렬화 라이브러리로 Jackson을 사용합니다. Jackson의 주요 모듈 Jackson은 크게 세 가지 주요 모듈로 나뉩니다.  1. Jackson Databind • 핵심 모듈로, JSON과 자바 객.. 2024. 12. 17.
[Spring] JWT기반 로그인 예시 JWT 기반 로그인 과정의 구체적인 예시 아래는 JWT 기반 로그인 과정을 구체적인 데이터와 저장 방식을 포함하여 자세히 설명한 내용입니다. 회원가입부터 로그인, 토큰 저장 및 검증, API 요청까지의 흐름을 따라갑니다. 1. 회원가입 1.1 프론트엔드 (사용자 입력)  • 사용자 user1이 아래 정보를 입력:{ "username": "user1", "password": "password123", "email": "user1@example.com"}  • 프론트엔드는 이를 백엔드에 POST 요청:POST /api/registerContent-Type: application/json{ "username": "user1", "password": "password123", "email": "use.. 2024. 12. 11.
[Spring] JPA 연관관계 JPA에서 연관관계를 정의할 때 주로 사용되는 관계는 일대일(1:1), 일대다(1:N), 다대일(N:1), 다대다(N:M) 네 가지입니다. 각각의 관계는 엔티티 간의 데이터 참조 방식에 따라 결정되며, 이를 정의하기 위해 JPA에서는 어노테이션을 사용합니다. 아래에서 각 연관관계의 특징과 구현 방법을 설명하고, 예제를 제공합니다. 1. 일대일 (One-to-One) 특징  • 한 엔티티는 다른 엔티티와 1:1로 매핑됩니다. • 두 엔티티 중 하나가 외래 키를 소유하거나, 별도의 테이블을 통해 관계를 설정할 수 있습니다. 예제: 사용자와 프로필@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) .. 2024. 12. 4.