Develop/Server5 [Server] Kotlin SpringBoot 프로젝트에 ktlint 적용하기 이번에 Kotlin으로 Spring Boot를 개발하는 프로젝트에 들어가게 되었다. 이에 Kotlin 관련 코드 컨벤션을 정하면 좋을 것 같다는 이야기가 나왔고 이를 효율적으로 해주는 ktlint 설치를 담당하게 되어 이를 정리해보고자 한다.ktlint ktlint란, Kotlin 코드의 스타일을 자동으로 검사하고 포맷팅해주는 도구이다.이를 통해, 코드를 깔끔하게 유지하고 팀 스타일 가이드를 지킬 수 있다는 장점이 있다. 📍ktlint는 pinterest의 오픈소스를 대부분 사용한다고 한다. GitHub - pinterest/ktlint: An anti-bikeshedding Kotlin linter with built-in formatterAn anti-bikeshedding Kotlin linter.. 2025. 5. 5. [Server] JPA 개념부터 Spring Data JPA까지 JPA는 스프링부트에서 DB에 접근하는 방법을 알 수 있는 중요한 기술 중 하나이다. 그래서 JPA가 어떤 것인지 기초부터 심화까지 알아보았고 그 내용을 정리하고자 한다. JPAJPA란, Java 객체를 데이터베이스 테이블에 매핑(ORM) 해주는 표준 "인터페이스"이다. 즉, SQL을 직접 쓰지 않아도 DB와 소통할 수 있게 도와주는 도구라고 볼 수 있다.JPA를 구현한 대표적인 오픈소스로는 "Hibernate"가 있다. JPA의 장점은 다음과 같다.JPA는 기존의 반복 코드는 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행해준다.JPA를 사용하면, SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환할 수 있다. 구현방법구현방법에 대해 알아보기 전, 이해를 위해 전체적인 다이어그.. 2025. 5. 5. [IT 인프라] Ch4 기본 이론 (큐, 배타적 제어, 상태 저장/비저장) 📚 를 읽고 그 내용을 정리하였습니다 큐'큐(Queue)'는 우리말로 '대기 행렬'이라 표현할 수 있다. 큐(대기 행렬)에서는 줄을 설 때는 가장 마지막에 서고, 처리는 선두부터 순서대로 된다.먼저 들어온 데이터가 먼저 나가는 큐 동작을 FIFO(First In First Out) 방식이라고 한다. 큐는 컴퓨터 세계에서 다양한 곳에 행렬이 만들어진다.CPU 처리를 기다리고 있는 프로세스나 스레드 행렬하드 디스크 등의 저장소 읽기 처리를 기다리고 있는 I/O 요구 행렬네트워크 접속 성립을 기다리고 있는 접속 요구 행렬 이때 CPU를 기다리고 있는 프로세스 행렬을 런큐(Run-Queue)라고 한다.'런큐에 쌓인 프로세스 수를 코어 수로 나누어서 1이라면 문제 없다' 라는 것이 일반적이다. 참고로, C.. 2025. 5. 3. [IT 인프라] Ch3 3계층형 시스템 (웹 데이터, 가상화) 📚 를 읽고 그 내용을 정리하였습니다 3계층형 아키텍처3계층형 아키텍처에 대한 구성요소를 살펴보면 위와 같다.웹 서버, AP 서버, DB 서버로 이루어져 있다.이 세 대의 서버는 스위치를 경유해서 연결돼 있다. 각각의 서버를 확대해서 보면 CPU, 메모리, 디스크, NIC/HBA 같은 하드웨어 부품이 나열돼 있다. 이제부터 OS를 이해하는 데 있어서 필수 개념이라고 할 수 있는 프로세스와 스레드, 커널에 대해 알아보자. 프로세스와 스레드프로세스 및 스레드는 프로그램 실행 파일 자체가 아니라 OS상에서 실행돼서 어느 정도 독립성을 가지고 동작하는 것이다.프로세스와 스레드가 활동하기 위해서는 메모리 공간이 필요하다. 이것은 커널에 의해 메모리상에 확보된다. 프로세스 시작 시에 벌어지는 순서는 다음과 같다.. 2025. 4. 12. [Cloud Native] Ch1 클라우드 네이티브 소개 📚 을 읽고 그 내용을 정리하였습니다 ☑️ Cloud Native 클라우드 네이티브 애플리케이션: 클라우드에서 실행되면서 변화에 탄력적으로 대응하고 고도로 분산되어 있는 시스템을 의미한다. 애플리케이션이 클라우드를 위해 특별히 설계되는 3가지 P가 있다.플랫폼: 클라우드 네이티브 애플리케이션은 클라우드 같은 동적 분산 환경을 기반으로 하는 플랫폼에서 실행된다.속성: 클라우드 네이티브 애플리케이션은 확장 가능하고 느슨하게 결합되며 복원력이 뛰어나고 관리가 용이하며 관찰 가능하도록 설계된다.실행: 견고한 자동화를 통해 빈번하고 예측 가능한 방식으로 시스템을 변경하는 것이 여기에 포함되는데 자동화, 지속적 전달, 데브옵스 등이 있다. 📖 클라우드 네이티브 애플리케이션을 중점적으로 보기 전에 이것.. 2024. 6. 16. 이전 1 다음