일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- email api 구현
- 오블완
- Token
- 널 허용
- kotlin
- ispresent
- javamailsender
- 스프링 부트
- string?
- 스프링
- 자바
- Spring
- 복합 키
- 티스토리챌린지
- devpi
- 토큰
- java
- @embededid
- 코틀린
- 이메일 본인인증
- string.repeat()
- JPA
- entity
- map
- jpa repository
- JPQL
- Spring Boot
- embededid
- 객체지향
- mutablemap
- Today
- Total
목록Develop (41)
DeveloPiano
Java 프로젝트를 개발하다 보면 종종 Controller -> Service (로직처리) 구조가 아닌 Controller -> Service Interface -> Service Implement 구조를 사용하는 경우를 볼 수 있습니다. 이러한 구조가 왜 필요한지, 어떤 기준으로 이런 구조를 정하는지에 대한 궁금증을 풀어보겠습니다.왜 Service Interface와 Service Implement를 사용하는가?서비스 인터페이스와 구현체를 분리하는 패턴은 코드의 유연성과 유지보수성을 높이기 위한 설계 방식입니다. 이를 통해 얻을 수 있는 주요 이점은 다음과 같습니다. 1. 구현체의 교체 용이성인터페이스를 사용하면 언제든지 구현체를 변경할 수 있습니다. 예를 들어, UserService 인터페이스를 여러..
문제설명다양한 수로 이루어진 배열이 있을 때 주어진 수들을 m번 더하되 배열의 인덱스에 해당하는 수가 연속해서 k번을 초과하지 않고 가장 큰 수를 만드는 법칙을 '큰 수의 법칙' 으로 정의할때, 배열의 크기 n, 숫자가 더해지는 횟수 m, 그리고 k가 주어질 때 큰 수의 법칙에 따른 결과를 출력하시오. 입력조건첫째 줄에 n(2 둘째 줄에 n개의 자연수가 주어진다. 각 자연수는 공백으로 구분한다. 단, 각각의 자연수는 1 이상 10,000 이하의 수로 주어진다.입력으로 주어지는 k는 항상 m보다 작거나 같다 문제풀이우선 가장 먼저 알아채야 할 사항은 가장 큰 수를 k번 만큼 더한다음 이후 두번재 큰수를 한번만 더해주면 다시 첫번째 큰 수를 더해줄 수 있다. 따라서 몇개의 값을 입력받든 첫번째와, 두번째 큰..
문제 설명카운터에 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 있고 이 동전의 수는 무한히 존재한다.손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러 줘야 할 동전의 최소 개수를 구하라. 단, 거슬러 주어야 할 돈 N은 항상 10의 배수이다. 문제 해설이 문제는 그리디 알고리즘을 이용하여 풀 수 있는 대표적인 문제이다.거슬러 주어야 할 동전의 최소 개수 이므로 가장 큰 단위의 거스름 돈 먼저 적용하여 작은 단위의 거스름돈으로 순차적으로 내려가면서 카운트를 세는 단순한 과정의 풀이방법을 적용하면 풀 수 있다. 문제 풀이# 거스름돈 입력 받기n = int(input("거스름돈 : "))# 받는 횟수 변수 선언count = 0# 거스름돈 타입 설정coin_type = [500, 100, ..
보통 메소드들은 리턴 타입을 가지고 있다.어떤 타입을 리턴하는지 표시해야 하며 해당 타입으로 리턴하지 않는다면 에러를 발생하게 된다. 하지만 같은 로직을 수행하지만 경우에 따라 타입이 달라지는 경우 등 리턴 타입이 고정되어 있지 않았으면 하는 일이 발생하곤 한다.이럴경우를 위해 제네릭 메소드(Generic Method)가 존재하며 이에 대해 간략하게 알아보고자 한다. 제네릭 메소드(Generic Method)란?제네릭 메소드란 클래스나 메소드를 정의할때 타입을 나중에 지정할 수 있게 해주는 기능이다.이는 코드의 재사용성과 타입의 안정성을 높일 수 있게 된다. 사용 예시 이러한 기능을 이용해서 API 호출시 유용하게 사용할 수 있었다.API는 각각 requestBody와 response의 구성이 다르기 때..
인텔리제이로 개발을 진행하다 보면 가끔 한글이 아닌 다른 알 수 없는 형태의 글로 보이는 경우가 있다. 이럴 경우 아래와 같은 방법을 이용해 인코딩 설정을 변경해 주면 쉽게 해결할 수 있다. (Mac OS 기준) IntelliJ IEAD -> Preferences 클릭 Editor -> File Encodings 인코딩 설정 UTF-8로 변경 Transparent native-toascil conversion 클릭 Apply 및 OK 클릭 인코딩 설정 완료
정의 EBS 볼륨의 특정 시점의 백업으로 해당 시점의 볼륨에 있는 모든 데이터의 복사본으로 EBS 볼륨을 백업하는데 유용한 도구로 생성 및 관리하기 쉽고 데이터 손실이나 손상을 방지하는 데 사용할 수 있다. 스냅샷을 생성하기 위해 EBS 볼륨을 분리할 필요는 없지만 스냅샷을 생성하는 동안 볼륨에 새 데이터가 기록되지 않도록 할 수 있기 때문에 권장되는 사항이다. 스냅샷을 AZ 또는 Region 간에 복사할 수 있다. 즉, 다른 AZ 또는 Region에 있는 스냅샷의 복사본을 생성할 수 있어 재해복구 또는 여러 지역에서 데이터를 복제하는데 유용하다. 스냅샷은 종분적이기 때문에 새 스냅샷에는 이전 스냅샷 이후 볼륨에 변경된 사항만 포함되어 스냅샷을 생성할 때 저장공간과 시간을 절약할 수 있다. 스냅샷은 불변..
정의 Amazone EC2 인스턴스에 대한 영구적인 블록 스토리지 볼륨을 제공하는 서비스 특징 네트워크 드라이브로 EC2 인스턴스에 물리적으로 연결되어 있지 않고 네트워크를 통해 엑세스 된다. 이로 인해 지연 시간이 발생할 수 있지만 EBS 볼륨을 EC2 인스턴스에 쉽게 연결하고 분리할 수 있다. EBS 볼륨은 특정 가용 영역(AZ - Availability Zone)에 연결되어 있기 때문에 한번에 하나의 EC2 인스턴스에만 연결할 수 있으며 다른 EC2 인스턴스에 EBS 볼륨을 연결하려면 첫번째 인스턴스에서 분리해야 한다. 프로비저닝(Provisioning)된 용량을 가지고 있어 볼륨을 만들때 크기가 IOPS(초당 I/O 작업수)를 선택할 수 있다. 프로비저닝된 용량에 대해 요금이 청구되며 사용하지 않..
EC2 인스턴스 구매 옵션에는 여러 가지 유형이 있으며 사용자는 다양한 비즈니스 요구 사항과 작업 부하에 맞게 선택할 수 있다. 종류 On-Demand Instances 짧은 작업 부하에 적합하며, 예측 가능한 가격을 제공한다. 초 단위로 지불하며 필요한 만큼의 용량을 사용할 수 있다. Reserved Instances 긴 작업 부하에 적함한 옵션으로 1년 또는 3년의 약정 기간으로 예약할 수 있다. 약정 기간 동안 일정한 가격으로 인스턴스를 이용할 수 있으며 Standard 및 Convertible 두 가지 옵션이 있다. Standard Reserved Instances : 특정 인스턴스 유형과 약정 기간에 대한 용량을 확보한다. Convertible Reserved Instances : 약정 기간 동..
보안 그룹(Security Group) 보안 그룹(Security Group)은 EC2 인스턴스에 들어오는 트래픽과 나가는 트래픽을 제어하는 역할을 한다. 보안 그룹의 기능 여러 인스턴스에 연결할 수 있다. 특정 지역과 가상 사설망(VPC)에 제한된다. EC2 인스턴스 외부에서 실행되므로 보안 그룹에서 트래픽을 차단하면 EC2 인스턴스는 해당 트래픽을 볼 수 없다. SSH 접근을 위해 별도의 보안 그룹을 유지하는 것이 좋다. 이렇게 하면 SSH를 통해 EC2 인스턴스에 접근할 수 있는 유저를 제어할 수 있으며 애플리케이션 트래픽을 SSH 트래픽과 분리하는 데 도움이 된다. 애플리케이션이 접근할 수 없거나(Time out) 작동하지 않는다면 보안 그룹에 문제가 있을 가능성이 높다. 이는 보안 그룹이 애플리..
EC2 "Elastic Compute Cloud"의 약어로, Infrastructure as a Service, IaaS 의 한 종류 주요 기능 EC2는 Virtual Machine 을 임대해주는 서비스이다. 사용자는 필요에 따라 가상 머신을 생성하고 구성할 수 있으며, 이를 통해 서버를 구축하고 운영할 수 있다. EC2는 가상 드라이브인 EBS(Elastic Block Store)를 통해 데이터를 저장할 수 있다. EBS는 안전적이고 확장 가능한 블록 수준 스토리지를 제고하여 EC2 인스턴스에 데이터를 영구적으로 보관할 수 있다. EC2는 ELB(Elastic Load Balancer)를 통해 서버 간 부하를 분산시킬 수 있다. ELB는 트래픽을 여러 EC2 인스턴스로 분산하여 안정성과 성능을 향상시키..