전체 글 52

[모던 자바스크립트] var를 사용하지 않아야 하는 이유

들어가며 ES6에서는 변수를 사용하기 위해 새로운 문법인 let과 const를 지원하면서 동시에, var의 사용을 지양하라고 권한다. 그렇다면 var는 어떤 문제가 있기에 새로운 대체 문법이 생겼는지, 어떤 차이가 있는지 살펴보자. 우선은 var의 문제점 세 가지를 살펴보자. var의 세 가지 문제점 1. 선언을 중복해서 할 수 있다 var code = 10; var code = 20; console.log(`code: ${code}`); // 'code: 20' 같은 이름의 변수를 중복해서 선언해도 정상적으로 동작하며, 가장 마지막 값을 저장하고 있는다. 2. scope의 범위가 전역 / 함수로 제한된다 var code = 10; if (true) { var code = 0; var codeName =..

Development/Etc 2022.09.03

[개발 Tip] Yaml, Properties 안에 중요한 정보를 암호화하기 feat. Jasypt 사용 방법

들어가며 며칠 전, Github에 토이 프로젝트 소스를 올렸더니, GitGuardian에서 *.yaml 파일에 계정 정보가 들어가 있다고 알려주었다. 단순히 파일만 삭제하고 커밋하면 git log를 통해 다시 확인할 수 있는 여지가 있어서 reset 후 gitignore에 *.yaml파일을 추가하여 재 커밋하였다. 이런 문제를 더 쉽게 해결할 수 있는 방법은 없을까 고민하다 프로퍼티 정보 암호화 방법을 찾게 되어 이렇게 공유한다. Jasypt란 무엇?? Java Simplified Encryption의 약자로, 자바로 간단히 암호화할 수 있게 도와주는 라이브러리다. 읽을 때는 '자시프트' 라고 발음하는 것 같다(유튜브 참고) 자세한 정보는 이곳을 참고하여 확인하면 된다. 그럼 바로 예제 코드를 살펴보자...

[Synology] NAS 방화벽 설정방법 feat. 방화벽 설정 규칙 추천

들어가며 처음 나스를 설치하고 방화벽 때문에 고생이 많았다. 인프라에 대한 지식이 없는 것도 한몫했다. 그래서 직접 찾아낸 방화벽 포트를 설정하는 방법을 공유하려고 한다. 방화벽 설정 방법 우선 [제어판 - 보안 - 방화벽] 으로 이동하여 "방화벽 프로파일 규칙 편집"을 클릭한다. 방화벽 프로파일은 설정값을 저장하는 단위다. 따라서 한 번에 하나의 프로파일만 적용되므로 일반적인 경우에는 여러 개의 프로파일을 만들 필요가 없다. 따라서 기본으로 주어진 프로파일을 관리해가면 된다. 다음은 포트 설정이다. 필자의 나스에는 랜선이 하나만 물려있어서 "모든 인터페이스"에 적용하도록 했다. 방화벽 설정은 크게 4 덩어리로 구분했다. 전 세계 어디서든 접속 가능한 포트 - 허용 특정 국가를 기준으로 접속을 차단하는 ..

Development/Infra 2022.05.04

[Springboot] bootRun과 docker-compose 자동으로 함께 실행하기 feat. spring.profiles.active 기본값을 local로 변경

들어가며 필자는 로컬에서 개발한 코드를 개발서버나 운영서버에서 배포하기 위해 gradle의 bootRun을 사용한다. 이때에도 도커의 컨테이너가 죽어있다면 혹은 이미지조차 없다고 하더라도 자동으로 설치되고 실행되면 좋겠다는 생각이 들었다. 그래서 bootRun에 도커컴포즈 파일을 실행할 수 있도록 작업을 추가하였다. 뭐든 손이 덜 가야 편하니깐! bootRun 설정하기 먼저 아래 포스팅과 동일한 상태까지는 따라와야 된다. 이번 글은 여기까지 설정을 완료된 상태라고 가정하고 작성했다. [Intelli J] Springboot + docker-compose 자동으로 함께 실행하기 feat. Gradle plugin 추천 들어가며 토이 프로젝트 진행하면서 Kafka가 필요하여 docker-compose 파일을..

[Intelli J] Springboot + docker-compose 자동으로 함께 실행하기 feat. Gradle plugin 추천

들어가며 토이 프로젝트 진행하면서 Kafka가 필요하여 docker-compose 파일을 만들었다. 도커 컴포트 파일로 로컬 프로젝트를 실행할 때, 보통 아래와 같은 절차를 거친다. docker-compose Up을 하여 컨테이너를 실행한다. 스프링부트를실행한다. 근데 필자는 스프링부트를 실행할 때 자동으로 docker-compose 내에 명시된 컨테이너를 실행하고 싶었다. 왜냐? 터미널 들어가서 명령어 치는 게 귀찮았기 때문이다. docker-compose 자동으로 실행하기 적용하는 순서를 먼저 요약하면 다음과 같다. 기본적으로 각자에게 필요한 docker-compose 파일은 생성했다고 가정하고 진행하니 아직 docker-compose 파일이 없다면 먼저 준비해야 한다. 'com.palantir.do..