일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CloudWatch
- MySQL
- Pinpoint
- mysql 튜닝
- 오블완
- APM
- PETERICA
- minikube
- kotlin spring
- 기록으로 실력을 쌓자
- 티스토리챌린지
- 코틀린 코루틴의 정석
- CKA 기출문제
- IntelliJ
- Java
- Elasticsearch
- aws
- 공부
- kotlin coroutine
- Linux
- 정보처리기사실기 기출문제
- CKA
- kotlin querydsl
- AI
- 정보처리기사 실기
- AWS EKS
- kotlin
- Spring
- Kubernetes
- 정보처리기사 실기 기출문제
- Today
- Total
목록전체 글 (777)
피터의 개발이야기
ㅁ 들어가며ㅇ 새로 편입한 팀에서 Ruby를 사용하고 있어서 루비(Ruby)의 특징에 대해서 정리해 보았다. ㅁ 루비란? 루비는 1995년 일본의 프로그래머 마츠모토 유키히로가 개발한 동적 객체 지향 스크립트 언어이다. 간결하고 직관적인 문법으로 유명한 루비는 "프로그래머의 생산성과 즐거움"을 목표로 설계되었다. ㅁ루비의 특징ㅇ 순수 객체 지향 루비는 모든 것이 객체이다. 심지어 정수와 같은 기본 데이터 타입도 객체로 취급한다. 이는 일관된 객체 지향 프로그래밍을 가능하게 한다.ㅇ 간결한 문법 비는 영어 문장과 유사한 형태의 문법을 가지고 있어, 코드 작성과 읽기가 매우 쉽다.puts "Hello, World!" # 괄호 없이 사용 가능예를 들어, 괄호를 생략할 수 있고, 키워드를 사용하여 더 ..
ㅁ 들어가며ㅇ Kotlin을 2024.5부터 사용하면서, [Kotlin] 널 안정성, Null safety을 정리하였다.ㅇ 실질적인 코딩을 하면서 기본값 세팅하는 방법을 정리하게 되었다.ㅇ 이번 글에서는 Kotlin에서 Long 타입이 null일 때 기본값을 설정하는 방법을 정리해 보았다.ㅁ 엘비스 연산자 (?:) 사용val nullableLong: Long? = nullval result = nullableLong ?: 0L이 방법에서는 nullableLong이 null이면 0L(Long 타입의 0)이 result에 할당된다. ㅁ 안전 호출 연산자 (?.)와 엘비스 연산자 (?:) 조합// Kotlinval nullableLong: Long? = nullval result = nullableLong?..
ㅁ 들어가며ㅇ Java Spring의 Builder 패턴은 복잡한 생성자를 편리하게 생성할 수 있게 해준다.ㅇ Kotlin은 기본적으로 Builder 패턴을 사용하지 않아도 되는 언어적 특징을 가지고 있다.ㅇ 그럼에도 특정 상황에서는 Builder 패턴을 활용할 수 있다.ㅇ Kotlin에서 Spring의 Builder 패턴을 사용하는 방법에 대해 알아보았다. ㅁ Kotlin의 언어적 특징ㅇ Kotlin은 기본 생성자와 함께 named arguments와 default parameters(기본값 선언) 기능을 제공한다. ㅇ 이 두 가지 기능을 활용하면, 자바에서 흔히 사용하는 Builder 패턴 없이도 객체를 유연하게 생성할 수 있다. // 샘플 dtodata class User( val name: ..
ㅁ 들어가며ㅇ 2019년 맥북을 사용 중인데, FCPX로 영상편집을 하는 과정에서 맥이 먹통이 되었다. ㅇ CPU의 온도가 높아지면 하드웨어 파손이 발생하기에 의도적으로 CPU가 성능제한이 걸리게 된다.ㅇ kernel_task이 CPU를 임의로 점유하여 CPU 사용을 제한하게 된다.ㅇ 이 글은 kernel_task의 역할과 이를 해결하는 방법에 대해서 정리해 보았다. ㅁ 증상ㅇ FCPX로 영상작업을 시작하면서 CPU온도가 상승하기 시작하였다.ㅇ 어느 순간 타이핑할 때 딜레이가 발생하더니 특정 기능은 느리게 작동하더니 기능이 멈취버리고 말았다.ㅇ 프로그램을 강제 종료하고 재부팅을 하였지만 상황이 개선되지 않았다.ㅇ 원인 분석을 위해 활성 상태 보기를 열어 보았더니 kernel_task가 CPU의 700%가..
ㅁ 들어가며 Spring AOP(Aspect-Oriented Programming)는 애플리케이션의 비즈니스 로직과 공통 관심사를 분리하여 코드의 모듈화를 돕는 프로그래밍 패러다임이다. 이를 통해 코드의 중복을 줄이고 유지보수성을 높일 수 있다. ㅁ AOP의 주요 개념Aspectㅇ Aspect는 여러 객체에 공통으로 적용되는 기능을 모듈화한 것이다.ㅇ 이는 어드바이스(Advice)와 포인트컷(PointCut)을 결합하여 애플리케이션에 포함되는 횡단 관심사(Cross-cutting Concerns)를 정의한다. Join Pointㅇ Join Point는 애플리케이션 실행 흐름에서 특정 포인트를 의미하며, AOP가 적용될 수 있는 모든 지점을 나타낸다. ㅇ 스프링 AOP에서는 메서드 실행 지점이 주로 Joi..
ㅁ 들어가며 AlphaGo가 기존 바둑프로그램의 한계를 뛰어 넘은 핵심을 더 깊게 이해하기 위해 인공지능에 대한 이해가 필요하다. 이 리포트는 인공지능의 역사와 알고리즘에 대해 살펴봄으로써 인공지능에 대해 이해하고, 시대적 흐름 속에서 새로운 기술적 도약을 위해 ‘PIM’이라는 컴퓨팅 기술에 대해 정리하고자 하였다. 2017년도에 인공지능에 대해 공부하고 리포트로 정리한 글로 LLM의 게임 체인저인 트랜스포머를 알기 전에 작성한 글이다.- 차례 -1. 인공지능의 정의2. 인공지능의 역사 2.1. 1차 인공지능 붐 : AI의 탄생과 한계. 2.2. 2차 인공지능 붐. 2.3. 진화연산, 단어계산 2.4. 인공지능의 역사를 통해 바라본 미래3. 인공 신경망 3.1. 인간의 뇌에 대한 모방으로서 ..
ㅁ 들어가며ㅇ 쿠버네티스 환경에서 특정 API에 대한 접근을 제한하는 방법을 정리하였다.ㅇ Ingress 규칙을 설정하여 해당 경로로의 요청을 특정 서비스로 라우팅하지 않도록 할 수 있다.ㅇ 네트워크 차단에 있어서 네트워크 정책(Network Policy)와 Ingress 리소스의 차이점도 알 수 있었다. ㅁ Ingress 리소스 생성apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: block-path-ingress namespace: defaultspec: rules: - http: paths: - path: /blocked-path/* pathType: Prefix backend: ..
ㅁ 들어가며ㅇ [Kotlin] Spring Boot 멀티모듈 프로젝트 구성하기에서 멀티 모듈을 구성하여 재사용 가능한 소스를 모듈화 하였다. ㅇ 모듈화된 공통 소스를 Jar로 배포하는 방법을 [Kotlin] Spring 멀티모듈, JAR 파일로 배포하는 방법에 정리하였다.ㅇ 이 글에서는 모듈로 생성된 jar를 로컬 파일 복사를 통해 다른 프로젝트에서 참조시키는 방법을 정리하였다. ㅁ libs 폴더 생성ㅇ 참조할 프로젝트의 루트 디렉토리에 libs라는 폴더를 생성하고, 참조하고자 하는 JAR 파일을 해당 폴더에 복사한다. ㅁ build.gradle 파일 수정ㅇ build.gradle 파일을 열고, dependencies 블록에 JAR 파일을 추가한다.// 특정파일 적용dependencies { imp..
ㅁ 들어가며ㅇ [Kotlin] Spring Boot 멀티모듈 프로젝트 구성하기를 수행하였다.ㅇ Kotlin 멀티모듈 프로젝트를 개발하다 보면 특정 모듈을 다른 프로젝트에서 재사용하고 싶을 때가 있다. ㅇ 이때 해당 모듈을 JAR 파일로 배포하면 편리하게 참조할 수 있다. ㅇ 이 글에서는, Kotlin 멀티모듈 프로젝트에서 Gradle을 설정하여 특정 모듈을 JAR 파일로 배포하는 방법을 정리하였다. ㅁ 프로젝트 구조ㅇ 멀티 모듈 프로젝트는 일반적으로 다음과 같은 구조를 가진다kotlin-multi-module│├── build.gradle.kts├── settings.gradle.kts│├── common│ ├── build.gradle.kts│ └── src/main/kotlin/com/pete..
ㅁ 들어가며ㅇ Mistral AI and NVIDIA Unveil Mistral NeMo 12B, a Cutting-Edge Enterprise AI Model이 기사의 내용을 보고 요약 정리하였다. ㅁ Mistral NeMo 12B란? Mistral AI와 NVIDIA는 최신 언어 모델인 Mistral NeMo 12B를 발표했다. 이 모델은 엔터프라이즈 애플리케이션을 위한 챗봇, 다국어 작업, 코딩, 요약 등의 작업에 쉽게 맞춤화 및 배포할 수 있다. Mistral AI의 데이터 훈련 전문성과 NVIDIA의 최적화된 하드웨어 및 소프트웨어 생태계를 결합하여 높은 성능을 제공한다. ㅁ 플랫폼 Mistral NeMo는 NVIDIA DGX Cloud AI 플랫폼에서 훈련되었으며, NVIDIA Tensor..
ㅁ 들어가며 Reason: Paging query needs to have a Pageable parameter; Offending method: public abstract org.springframework.data.domain.Pageㅇ Spring Data JPA를 사용하여 페이징 쿼리를 실행할 때 발생하는 오류 메시지이다.ㅇ"Paging query needs to have a Pageable parameter"는 페이징 기능을 사용하려면 Pageable 파라미터가 필요하다는 의미이다.ㅇ 이 문제를 해결하기 위해서는 리포지토리 메서드에 Pageable 파라미터를 추가해야 한다.ㅇ 페이징 처리는 [Kotlin] Spring Boot와 Kotlin으로 QueryDSL 페이징 처리하기 ㅁ Import ..
ㅁ 들어가며Fair Source License는 소프트웨어 라이센스의 새로운 접근 방식으로, 소스 코드를 공개하면서도 특정 조건 하에 사용을 제한하는 형태다. 이는 오픈 소스와 상용 소프트웨어의 중간 지점에 위치하며, 기업이 소프트웨어를 공개하고자 할 때 유용하다. ㅁ Fair Source License의 주요 특징ㅇ 소스 코드 공개 - Fair Source License는 소스 코드를 공개하여 누구나 열람할 수 있도록 한다. - 이는 투명성을 높이고 커뮤니티의 참여를 유도하는 데 기여한다.ㅇ 사용 제한 - 소프트웨어 사용에 일정한 제한을 두어, 예를 들어 사용자 수나 사용 목적에 따라 제한을 설정할 수 있다. - 이는 기업이 소프트웨어의 상업적 사용을 통제하고, 이를 통해 수익을 창출할 수 있도록 돕는..
ㅁ 들어가며ㅇ Spring Boot를 시작하면서 데이터베이스 초기화하는 방법을 검토 중이다.ㅇ 이번 글에서는 Spring Boot는 애플리케이션 실행 시 데이터베이스를 초기화하는 방법을 개론적으로 정리해 보았다.ㅇ 구체적으로 적용이 필요한 시점에 구체적인 적용방법을 정리할 것이다. ㅁ 관련 글ㅇ [Spring] JUnit5 조건부 테스트 실행방법 ㄴ JPA의 ddl-auto 기능과 함께 사용하면 개발환경 별 자동 테스트 환경을 구축할 수 있다. ㅁ JPA를 사용한 초기화ㅇ JPA의 DDL생성 기능을 활용해 애플리케이션 시작 시 데이터베이스 스키마를 생성할 수 있다.ㅇ 다음 두 가지 설정으로 제어한다.// JPA의 DDL 생성 기능을 켜고 끈다.spring.jpa.generate-ddl: true/fal..
ㅁ 들어가며ㅇ api, batch, gateway, internel...를 구성하면서, 반복되는 Util, Dto, Entity, Service, Enum...을 만나게 된다.ㅇ 동일한 파일을 여러번 변경하기도 하고, 프로젝트별로 변경된 Util은 공통으로 관리하기도 어렵다.ㅇ 예로, 프로젝트가 10개이면, dto 하나 수정하고 PR 10번 올려야 한다.ㅇ 공통 기능을 모듈화하여 코드의 재사용성을 높이고 의존성 관리를 개선하기 위해 멀티 모듈은 꼭!! 필요하다.ㅇ 이번 글에서는 Kotlin Spring Boot 프로젝트를 멀티모듈로 구성하는 방법을 정리하였다. ㅁ 멀티 모듈 프로젝트의 필요성ㅇ 코드 재사용성 - 공통 기능을 개별 모듈에서 분리하여 공통으로 만들면 재사용이 가능하다. - 중복코드를 ..
ㅁ 들어가며K-PaaS는 한국형 클라우드 플랫폼 서비스(Platform as a Service)를 의미합니다.이 플랫폼은 클라우드 환경에서 애플리케이션을 개발, 실행, 관리할 수 있는 다양한 도구와 서비스를 제공합니다. ㅁ K-PaaS의 주요 특징ㅇ 릴리즈 및 다운로드K-PaaS는 정기적으로 릴리즈를 제공하며, 사용자들은 K-PaaS 코어와 서비스를 쉽게 다운로드할 수 있습니다. 이를 통해 개발자들은 최신 버전의 플랫폼을 활용하여 작업을 진행할 수 있습니다. ㅇ 가이드 문서Github를 통해 K-PaaS 사용에 대한 상세한 가이드 문서를 제공합니다. 이 문서들은 플랫폼 사용법부터 고급 기능까지 다양한 정보를 포함하고 있어 사용자들의 학습과 문제 해결에 도움을 줍니다. ㅇ 호환성 및 다양한 서비스K-Pa..