Dev(37)
-
MySQL 8.0.34 CentOS7.8 replication 이중화 구성
우리 회사에서는 네이버 클라우드 서버를 사용중이다. 이번에 회사 DB 서버를 이중화하면서 2일간 고생을 했는데, 잊지 않기 위하여 기록을 한다. 사실 네이버 클라우드의 Cloud for MySQL 서버를 사용하면 이중화 구성이 자동으로 되기 때문에 편하긴 하지만, 2core, 4GB 기준으로 1달 서버비용이 거의 25만원(총 2대 비용)이고, 게다가 DB서버에 접속하기 위한 서버를 1대 더 생성해야 해서, 순수 서버비용만 거의 1달에 30만원이 나가게 된다. 게다가 스토리지 비용도.... 우리는 스타트업이므로 회사의 서버비용도 절약하고, 나도 DB 관련 지식을 얻을 겸, 이중화 구성을 직접 진행하였다. [ 시스템 사양 ] - MySQL 버전 : 8.0.34 - OS 버전 : CentOS 7.8 (64비트..
2023.09.14 -
springboot H2 database 연결 오류 "mem:testdb" not found
스프링부트의 application.yml 에 h2 관련 설정을 아래와 같이 하였다. spring: h2: console: enabled: true path: /h2-console datasource: url: jdbc:h2:mem:testdb username: sa password: sa driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create # 어플리케이션을 시작할 때 데이터베이스를 초기화하고 다시 테이블 생성 properties: hibernate: format_sql: true # 실행되는 query를 보여줌 logging.level: org.hibernate.SQL: debug 그 다음, 스프링부트를 실행한 후, http://local..
2023.08.10 -
코틀린 팩토리 패턴(Kotlin Factory Pattern) - 스프링부트
스프링부트에서 코틀린으로 팩토리 패턴을 구현하는 방법을 알아보자. 아래 코드 샘플을 참고해주세요. 코드샘플 PushType.kt (열거형 enum 클래스) enum class PushType { ANDROID, IOS; companion object { operator fun invoke(type: String) = valueOf(type.uppercase()) } } PushService.kt (인터페이스 클래스) interface PushService { fun getPushType(): PushType; fun savePushData() = println("default msg...") AndroidPushServiceImpl.kt (PushService 인터페이스를 구현하는 서비스 클래스) @Se..
2023.05.09 -
[코틀린/Kotlin] 함수의 선언방법
fun log(level: String = "ERROR", message: String){ println("[$level]$message") } //위 함수를 아래와 같이 여러 방법으로 호출 가능하고, 출력값은 우측과 같다. fun main(){ log(message = "에러 로그"); --> [ERROR]에러 로그 log(level = "DEBUG", "디버그 로그") --> [DEBUG]디버그 로그 log("WARN", "경고 로그") --> [WARN]경고 로그 log(level = "FATAL", "심각한로그") --> [FATAL]심각한로그 } 오늘은 코틀린의 함수 선언방법에 대해 공부해보자! 코틀린의 함수 선언방법은 자바의 그것보다 좀 더 간결하고 유용한 기능이 제공된다. ■ 기본적인 함수 ..
2022.10.30 -
[코틀린/Kotlin] 변수의 선언방법
코틀린에서 변수 키워드로는 아래와 같이 val 과 var 가 사용된다. ☐ 변수 키워드 1. val (value의 약자) - val 키워드로 초기화된 변수는 값을 재할당 할 수 없다. (자바의 final 키워드로 선언된 변수처럼 값 재할당 불가능) - 마치 자바에서의 final 키워드 또는 자바스크립트의 const 키워드와 비슷하다. val a : Int = 1 a = 2
2022.10.19 -
[자바] java8 stream 리스트 객체 2개 비교
자바8 stream을 사용해서 리스트 객체 2개를 비교하는 글은 많이 있다. 아래의 예제는 String 으로 이루어진 리스트 2개를 비교하여 조건에 맞는 리스트를 필터링하는 예제이다. @Test void testList(){ List originalList = Arrays.asList("a1", "a2", "a3", "a4"); List filterList = Arrays.asList("a3", "a4", "a5", "a6"); List filteredList = originalList.stream() .filter(item -> filterList.stream().noneMatch(Predicate.isEqual(item))) .collect(Collectors.toList()); //originalL..
2022.02.11