전체 글
-
NCP를 이용한 프로젝트 배포 - (3) 도메인 및 SSL 적용☁️ infra/Naver Cloud Platform 2025. 2. 28. 01:09
Naver Cloud Platform은 HTTPS/기본 도메인을 제공하지 않아 도메인 지정하고 SSL 적용해보기로 했다. 1️⃣ 개인 도메인 구매NCP Global DNS를 사용하기 위해서는 개인 도메인이 필요하다.개인 도메인은 호스팅 사이트에서 구매할 수 있다. (가비아 에서 구매) 2️⃣ NCP Global DNS에 구매한 도메인 등록NCP 콘솔 > Networking > Global DNS > 도메인 추가 - 구매한 도메인 추가 도메인이 등록이 되면 Global DNS에서 제공하는 네임 서버를 확인할 수 있다.가비아는 자체적으로 DNS 서버를 운영하고 있어 구매한 도메인은 자동으로 가비아의 도메인 서버로 등록된다.따라서, Global DNS에 도메인 등록이 완료되었으면 가비아의 도메인 통합 관리 ..
-
NCP를 이용한 프로젝트 배포 - (2) 배포☁️ infra/Naver Cloud Platform 2025. 2. 28. 00:54
Spring Boot로 개발한 애플리케이션을 Docker Hub에 올리고 이를 NCP 서버에서 자동으로 pull 받아 실행하도록 설정하는 과정또한, GitHub Actions을 이용해 main 브랜치에 코드가 push될 때 자동으로 배포가 이루어지도록 설정 ⤴️ Github ActionsGitHub Actions을 이용하여 CI/CD 파이프라인을 구축하는 설정입니다.name: github-actionson: push: branches: [ "develop", "main" ] pull_request: branches: [ "develop", "main" ]jobs: build: name: build runs-on: ubuntu-latest steps: - uses:..
-
NCP를 이용한 프로젝트 배포 - (1) 서버☁️ infra/Naver Cloud Platform 2025. 2. 28. 00:41
이번에 비사이드 X 네이버 클라우드 502 AI 포텐데이 프로젝트를 진행하면서GithubActions을 이용한 CI/CD 파이프라인으로 자동화하여 NCP(Naver Cloud Platform)이용해 서버를 배포하는 과정을 정리하려고 합니다. 🎯 목표NCP 서버 활용docker 기반 애플리케이션 배포github actions을 활용한 CI/CD 파이프라인 구성 ⚙️ VPC / 서브넷 설정📍 VPC 생성 IP 주소 범위는 사설 IP주소의 범위를 의미하며 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 중에 선택해서 cidr를 조정 📍 서브넷 생성 Internet Gateway 전용 여부에서 "Y"를 선택하면 public이고 "N"를 선택하면 private 🚀 NCP ..
-
👾 MockK와 Mockito🔖 Kotlin 2025. 1. 9. 17:16
📌 Mockito@Testfun `mockito 테스트 예제`() { // given val username = "beomsic" val user = User(username) given(userRepository.save(any())).willReturn(user) // when userService.save(user) // then then(userRepository).should().save(any())}Mockito를 사용하면 BDDMockito를 통해서 BDD 형태로 작성할 수 있다.when은 given으로 verify는 then으로 사용 📌 MockK코틀린에서 테스트 시 Mock 객체를 생성하는 것을 도와주는 라이브러리@Testfun `mockk ..
-
😎 Infix Function🔖 Kotlin 2024. 12. 30. 15:43
🤔 Infix Function코틀린은 가독성 좋은 코드를 위한 언어로 이를 통해 코드를 더 쉽게 유지 관리할 수 있다.infix 표기법도 이런 기능 중 하나이다.💡Infix 표기법코틀린은 마침표와 괄호를 사용하지 않고도 일부 함수를 호출할 수 있게 해주며 이를 Infix 메서드라고 한다. 🎯 Infix Function의 목표 가독성 향상 Infix 함수는 코드를 자연어처럼 보이게 해 가독성을 향상 도메인별 언어(DSL)이나 사람이 읽을 수 있는 형식으로 작업을 표현할때 유용보일러 플레이트 줄이기Infix 표기법을 사용해 보일러 플레이트 코드의 양을 줄일 수 있다. 📌 Standard library infix function to()Pair 인스턴스 생성and(), or(), xor()두 피연..
-
널 안정성🔖 Kotlin 2024. 12. 29. 22:09
🤔 Kotlin에서 Null 안정성을 보장하는 이유Java의 NPE(null pointer exception) 문제자바는 모든 객체가 기본적으로 null을 허용해, 개발자가 별도로 null 체크를 해주어야 한다.따라서 NPE이 발생하는 코드가 흔하며 이는 자바 개발자가 가장 많이 마주치는 오류중 하나이다.이를 방지하기 위해 많은 양의 보일러플레이트 코드(명시적 null 체크)가 필요Kotlin 설계 철학코틀린은 안전하고 간결한 코드 작성을 목표로 설계null 안정성을 언어차원에서 지원해 개발자의 실수를 방지하고 코드의 신뢰성을 높인다.개발자가 명시적으로 null 가능성을 처리해 런타임 오류를 최소화생산성과 가독성 향상null 체크를 자동화하고 코드 가독성을 높임으로써 개발 생산성 향상명시적인 nulla..
-
🦥 lateinit 과 lazy🔖 Kotlin 2024. 12. 29. 15:33
💡 지연초기화초기화를 미뤘다 실제 사용하는 시점에 초기화하는 기법초기화 과정에서 자원을 많이 사용하거나 오버헤드가 발생하는 경우 지연초기화를 사용하는 것이 유리❗ 코틀린에서는 두 가지의 다른 방식의 지연초기화를 제공lateinit, lazy변수를 초기화하는 시점을 제어해 성능 최적화와 코드 가독성을 높인다. 📌 lazyclass HelloBot { var greeting: String? = null fun sayHello() = println(greeting)}fun getHello() = "안녕하세요"fun main() { val helloBot = HelloBot() helloBot.greeting = getHello() helloBot.sayHello()} ⚠️ 위 코..
-
Kotlin Coroutines🔖 Kotlin 2024. 12. 28. 00:44
🤔 Kotlin CoroutinesCoroutine 이란?co(함께) + routine (특정 일을 수행하는 명령의 모음)코틀린에서 제공하는 기능으로 비동기 작업을 효율적으로 처리하기 위해 설계된 경량화된 동시성 처리 방식📍 특징suspend(중단)와 resume(재개)가 가능비 선점형 멀티태스킹 (Non-preemptive multitasking)협력형 멀티태스킹 (Cooperative multitasking) ❗ 왜 코루틴을 사용해야 할까요?📖 비동기 처리네트워크 요청, DB 작업, 파일 I/O 처럼 오랜 시간이 걸리는 작업을 비동기로 처리하는 것이 중요코루틴은 Kotlin 에서 동시성을 간단하게 처리할 수 있는 기능 중 하나.비동기 코드를 동기적으로 작성하는 것처럼 보이게해 코드의 가독성을 높..