Development
204개의 글
Spring Query Refresh
1. 개요 서블릿 컨테이너 리부팅 없이 쿼리 반영을 가능케 한다. (긴급 반영 등) 2. 방법 CommonDao 빈을 refresh하면 된다. 실제로는 CI/CD 도구와 연계하여 쿼리 파일을 반영한…
MyBatis Plugin Interceptor를 통한 Query Logging 구현
1. 목적 MyBatis 로그를 어떻게 할까 고민하던 중 선택한 방법이다. 실제 Insert, Update 등의 쿼리를 DB에 넣어달라는 요청은 많이 발생한다. 하지만 log4j 사용 시 모든 쿼리…
순수함수
함수형 프로그래밍 부수 효과를 없애고 순수 함수를 만들어 모듈화 수준을 높이는 프로그래밍 패러다임이다.(개발할 때 가장 어려운 점은 변경을 추적하고, 상태를 유지하는 것) 부수 효과 : 함수에서 외…
golang Context(컨텍스트)
개요 golang은 Context(컨텍스트) 패키지를 기본적으로 포함하고 있다. 컨텍스트는 함수가 요청을 받을 때 API와 API 사이, 프로세스 사이에서 값들을 가지고 다닌다. 서버에 요청이 들어…
golang 크로스 컴파일-리눅스에서 .exe 빌드
개요 golang을 크로스 컴파일하여 다른 운영체제에서 실행 가능한 실행파일을 생성한다. 컴파일 가능한 instruction set 다음과 같은 instruction set을 지원한다. amd64,…
Git 체크리스트
Git 체크리스트 이 글은 Git 프로젝트를 생성하거나 사용할 때 참고하기 좋은 체크리스트이다. Git 프로젝트를 Fork 한다. Fork한 프로젝트를 로컬 환경으로 복사한다. ( git clone…
golang IP Lookup 애플리케이션
개요 K8s에 Stateful Set으로 Pod를 띄우는 경우, 각 Pod IP로 접근해야 할 필요성이 있을 수 있다. 가령 EKS의 경우 Pod가 ENI와 매핑되어 같은 VPC 내부에서 Pod I…
golang REST API 서버 컨테이너 빌드
개요 golang으로 간단한 REST API 서버를 작성하고, 다중 스테이지(Multi stage) Dockerfile로 빌드하여 컨테이너로 배포한다. API 서버 모듈 임포트 REST API 서버…
[JavaScript] strict mode란?
Strict mode란 ECMAScript 5에서 처음으로 소개된 strict 모드는 JavaScript 코드에 더욱 엄격한 오류 검사를 적용하여 기존에 무시되던 오류를 발생시킬 가능성이 높거나 자…
Swagger란
1. 개요 REST API 설계 및 문서화 등에 유용하게 사용되는 Swagger에 대해 소개하고, Spring Boot에 적용하여 REST API를 문서화하는 예제를 소개한다. 2. Swagger란…
golang에서 MongoDB 사용하기
개요 go.mongodb.org/mongo-driver를 활용하여 golang에서 MongoDB를 사용하는 방법을 알아본다. 모듈 다운로드 go get go.mongodb.org/mongo-driv…
golang MySQL 연동
개요 golang을 통해 MySQL의 데이터베이스에 쿼리를 날리는 방법을 알아본다. 필요 모듈 DB의 연동과 관련된 database/sql 모듈과 MySQL 드라이버인 go-sql-driver/my…
Reactive Programming
1. 소개 오늘은 리액티브 프로그래밍이 무엇인지 소개하려고 합니다. 2. 리액티브 프로그래밍이란 무엇인가? 데이터가 통지될 때마다 관련 프로그램이 반응(Reaction)하여 데이터를 처리하는 기법이…
Eclipse에서 dispatcher-servlet.xml 파일 red 마크
1. 개요 2. 현상 Multiple annotations found at this line: - Referenced file contains errors (http://www.springframe…
GCP Cloud Source Repositories Quick Start
1. 개요 2. GCP 가입 3. 메뉴로 이동 https://cloud.google.com/source-repositories/?hl=ko 4. 생성 저장소 및 프로젝트를 생성한다. 5. 인증 인증…
Git Branch 종류
1. 개요 개발을 하다보면 코드를 여러 버전으로 복사해야 할 일이 생긴다. 그래서 코드를 통째로 복사하여 원래 코드와 무관하게 별도로, 독립적으로 개발을 진행하게 되는데 이것이 브랜치이다. 브랜치는…
Jenkins의 쿠버네티스 배포 플러그인
1. 개요 쿠버네티스 클러스터로 배포하기 위한 Jenkins 플러그인을 소개한다. 참고로 Jenkins는 빌드, 테스트, 배포 파이프라인을 관리할 수 있는 오픈 소스 자동화 서버이다. 2. 기능 마…
CI/CD 간단 정리
CI/CD 1. 개요 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 사용자에게 제공하는 방법을 말한다 . 기본적인 개념은 지속적인 통합 (Continuous Integratio…
S2I를 이용한 도커 이미지 빌드 테스트
1. 개요 2. S2I 설치 홈페이지 : https://github.com/openshift/source-to-image 1.2.0 다운로드 : https://github.com/openshift/…
Spring CLI를 이용한 샘플 애플리케이션 만들기
1. 개요 2. 사전조건 Spring CLI가 설치되어 있어야 한다. 3. 프로젝트 생성 $ spring init --dependencies=web,data-rest,thymeleaf spring-…
Spring CLI Installation
1. 개요 2. 설치 wget https://repo.spring.io/snapshot/org/springframework/boot/spring-boot-cli/2.3.0.BUILD-SNAPSHOT…
GitLab 연결 및 프로젝트 Push
1. 개요 2. 사전과정 3. GitLab 연결 저는 external_url을 gitlab.arieljei.com이라고 설정했으므로 클라이언트의 /etc/hosts 파일에 gitlab.arielje…
DevelopmentConcourse CI 실습
1. 사전조건 fly를 사용할 수 있어야 하고 PATH에 걸려있어야 함. wget https://github.com/concourse/concourse/releases/download/v5.6.0/…
DevelopmentConcourse CI 설치
1. 개요 2. 다운로드 설치방법 다운로드 페이지 : https://github.com/concourse/concourse/releases v5.5.4 : https://github.com/conc…