📘 Backend/Kotlin2023. 4. 16. 00:55Kotlin - Exception

💡 코틀린에서 예외를 다루는법 목차 Try Catch Finally Checked & Unchecked Exception Try With Resource 💡 Try Catch Finally Try-Catch-Finally 문법은 자바,코틀린이 둘 다 동일하며, 코틀린에선 Expression이다. 코틀린에서 try-catch는 Expression이기 떄문에 return이나 변수의 값에 바로 할당이 가능하다 주어진 문자열을 정수로 변경하는 예시 // Java private int parseIntOrThrow(@NotNull String str) { try { return Integer.parseInt(str); } catch (NumberFormatException e) { throw new IllegalA..

📘 Backend/Kotlin2023. 4. 6. 21:52Kotlin - Operator

💡 코틀린에서 연산자를 다루는법 목차 단항 & 산술연산자 비교연산자 / 동등 & 동일성 논리 & 특이한 연산자 연산자 오버로딩 💡 단항 연산자 / 산술 연산자 단항 : ++, -- 산술 : +, -, *, /, % 산술 대입 : +=, -=, *=, /=, %= 💡 비교 연산자와 동등성 & 동일성 비교연산자 비교 : >, =, money2) { println("Money1이 Money2보다 금액이 큽니다.") } 동등성 & 동일성 자바에서 동일성은 '==', 동등성은 'equals'를 사용했었다. 코틀린에서는 동일성에 '===' 사용, 동등성에 '=='를 호출한다. '=='를 사용하면 간접적으로 equals를 호출해준다. val mo..

📘 Backend/Kotlin2023. 4. 6. 21:52Kotlin - Condition

💡 코틀린에서 조건문을 다루는법 목차 Condition Expression & Statement Switch & When 💡 Condition 자바와 코틀린의 if문 차이점 void 생략 (Unit 키워드 사용, Unit 생략 가능) 함수를 만들때 fun 키워드 사용 Exception을 던질 때 new 키워드 생략 // Java private void validateScoreIsNotNegative(int score) { if (score < 0) { throw new IllegalArgumentException(String.format("%s는 0보다 작을 수 없습니다."), score); } } fun validateScoreIsNotNegative(score: Int) { if (score < 0)..

📘 Backend/Kotlin2023. 4. 6. 20:55Kotlin - Loop

💡 코틀린에서 Loop를 다루는법 목차 ForEach For While 💡 For-Each 자바와 코틀린의 For-Each 차이점 컬렉션을 만드는 방법이 다르다. &#39;:&#39; 대신 &#39;in&#39;을 사용한다. Iterable이 구현된 타입이라면 For-Each문에 전부 들어갈 수 있다. // Java List numbers = Arrays.asList(1L, 2L, 3L); for (long number : numbers) { System.out.println(number); } // Kotlin val numbers = listOf(1L, 2L, 3L) for (number in numbers) { println(number) } 💡 For &#39;..&#39; : 범위를 만들어 내는..

Spring Cloud Config
📘 Backend/Spring Cloud2023. 4. 4. 14:23Spring Cloud Config

📘 Spring Cloud Config 분산된 환경의 어플리케이션에서 환경설정 정보를 중앙의 Config Server에 모아 관리하게 해주는 라이브러리이다. 구축을 하게 된 배경은 디스코드 봇을 만드는중인데 봇의 토큰 값을 로컬에서 관리하는 방법 말고 다른방법이 또 있을까 해서 검색하다 AWS Parameter Store를 할까 하다가 이걸로 하게 됐다. 구현 순서 Spring Cloud Config Server Spring Cloud Config Client SSH Key 등록 📘 Spring Cloud Config Server 여러 서버들의 설정정보를 모아놓을 HQ Config Server 사전 준비 사항 Spring Cloud Config 서버로 쓸 Private Git Repository 생성 S..

Spring Cloud Gateway (Eureka)
📘 Backend/Spring Cloud2023. 4. 4. 14:21Spring Cloud Gateway (Eureka)

📘 API Gateway 클라이언트의 마이크로 서비스 호출에 대한 접근 인증 및 ACL을 적용하여 중요 데이터를 보호하는 트래픽 관리 외부 클라이언트와 백엔드 서비스 간 통신을 최적화하여 클라이언트에게 원활한 경험 제공 확장성과 고가용성을 보장하며 클라이언트의 모든 API 호출을 가져와 적절한 마이크로 서비스로 라우팅 함. (로드밸런서와 유사한 구조) API Gateway를 사용하는 이유 마이크로 서비스는 각각 자체기능을 필요로 하기 떄문에 어플리케이션을 느슨하게 결합된 여러 서비스로 분해 가능 더 쉽게 개발, 배포 및 유지 관리를 할 수 있지만 고객이 어플리케이션에 빠르고 안전하게 액세스 하기가 더 어려워진다 Non-Blocking I/O가 지원되는 플랫폼에 구축하는것이 가장 합리적이다 (반응형 프로그..

JPA Value Type
📘 Backend/Spring2023. 4. 4. 14:19JPA Value Type

📘 JPA 데이터 타입 분류 JPA의 데이터 타입에는 엔티티 타입과 값 타입이 있다. 값 타입의 종류 기본값(Primitive, Wrapper, String) 임베디드(복합 값 타입) 값 타입 컬렉션 Entity Type @Entity로 정희 하는 객체이며, 데이터가 변해도 식별자로 지속적인 추적이 가능하다. ex: 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식이 가능하다. Value Type int, Integer, String 처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체이다. ex: 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체된다. 생명주기를 엔티티에 의존하며, 식별자가 없고 값만 있으므로 변경 시 추적이 불가능하다. 값 타입은 공유하면 안된다. (Side Effect ..

image