들어가기 전에 로드 밸런서를 통해 다중 서버를 구성하는 경우에는 아래 포스팅을 확인해 주세요 :) https://hojun-dev.tistory.com/entry/JAVA-JPA-다중-서버-환경-DB-동시성-문제-해결하기 [JAVA] JPA 다중 서버 환경 DB 동시성 문제 해결하기 개요 서비스를 운영하다 보면 동시성 문제에 의해 DB에 잘못된 업데이트가 발생하거나 중복 insert 등의 경우를 종종 마주칠 수 있다. 단일 서버라면 Java에서 제공하는 synchronized 블럭을 이용해서 hojun-dev.tistory.com 개요 서비스 로직을 구성하다 보면 고유번호를 제외하고도 고유한 값이 존재하는 컬럼을 구성하기 마련이다. (ex. 로그인 아이디) 이런 경우 해당 테이블에 그 고유한 값이 없으면..
개요 프론트엔드 개발을 하다 보면 localhost에서 https가 필요한 경우가 자주 있다. 예를 들어, 백엔드 API에서 Set-Cookie 헤더를 통해 쿠키를 전달하도록 구성할 때 Secure 설정이 걸려있다면 웹 브라우저와 웹 서버가 https로 통신하는 경우에만 쿠키를 저장한다. 참고) Set-Cookie Secure 설정에 대한 자세한 내용은 아래 생활코딩 수업에서 확인할 수 있다. https://opentutorials.org/course/3387/21744 쿠키 옵션 - Secure & HttpOnly - 생활코딩 수업소개 Secure는 웹브라우저와 웹서버가 https로 통신하는 경우만 웹브라우저가 쿠키를 서버로 전송하는 옵션입니다. HttpOnly는 자바스크립트의 document.cook..
개요 평소처럼 업무를 진행하며 회사 메일을 확인했는데, `Exposed Git repository on host "~~~.com"` 와 같은 제목의 메일 한 통이 와있었다. 내용인 즉슨 해당 도메인에서 특정 url로 접속했을 때 git log가 그대로 노출된다는 경고 메일이었다. repo-lookout https://www.repo-lookout.org/ Repo Lookout Use CommonCrawl and Tranco data to find publicly exposed Git repositories. www.repo-lookout.org repo-lookout은 Ko-fi에서 비영리 목적으로 만든 대규모 보안 스캐너로써 실수로 노출된 repository를 찾아 해당 기술 담당자에게 보고한다. 필..
개요 리눅스에서 파일 전송 로직을 자동화하기 위해 scp 명령어를 사용하던 도중 폴더 이동 관련 이슈가 발생하여 기록한다. scp 명령어란? scp(secure copy)는 로컬 시스템과 원격 서버 간에 파일 및 폴더를 복사하는 명령어로 SSH(보안 쉘) 프로토콜을 사용하여 데이터를 암호화하고 전송한다. scp 명령어는 다음과 같은 형식으로 사용된다. # remote_host의 destination_folder로 example.txt 파일 전송 scp example.txt username@remote_host:/destination_folder 폴더를 복사하고 싶을 땐 -r 옵션을 통해 아래와 같이 사용할 수 있다. # remote_host의 destination_folder로 example_folder..
개요 웹 사이트를 개발하고 도메인을 연동할 때 실제 사용자가 접속하는 페이지라면 보안 상 SSL 인증서를 설치하고 https로 접속을 해야 한다. 이때 같은 도메인으로 http로 접속하는 경우 https로 자동으로 접속이 되도록 설정을 해주는 것이 좋은데, 자동으로 리다이렉트 하는 방법에는 여러 가지가 있어 그 방법들을 정리하고자 한다. 보안 상 가장 권장되는 방법인 HSTS에 대해서는 아래 포스팅을 참고해 주세요 :) https://hojun-dev.tistory.com/entry/HSTS-설정으로-HTTPS-강제-적용하기 HSTS 설정으로 HTTPS 강제 적용하기 개요 업무 중 하나의 시스템에서 GS인증을 적용해야 했는데, 그 서비스의 기본 도메인에 HSTS를 적용하고, 크롬의 HSTS Preload..
개요 개발을 하다 보면 가상 호스트를 추가로 설정해줘야 할 일들이 종종 생기는데, 기존에 windows에서만 개발을 진행하다 최근 맥북을 새로 장만하면서 OS별로 가상 호스트를 설정하는 hosts 파일의 위치를 기록해 둘 필요성이 생기면서 hosts 파일에 대한 내용을 정리하게 되었다. hosts 파일이란? hosts 파일이란 IP 주소와 도메인 주소를 매핑해 주는 파일이다. IP 주소와 호스트 이름을 매핑하여 도메인 이름을 해석하는 데 사용된다. 간단히 말해 hosts 파일은 DNS(Domain Name System) 서버를 우회하여 특정 도메인 이름을 원하는 IP 주소로 연결할 수 있게 해 준다. DNS 서버가 있기 전 옛날에는 어떤 도메인이 어떤 IP다라고 하는 정보를 갖고 있는 hosts라는 파일..
개요 좋은 기회로 맥북을 새로 장만하여 개발 환경을 세팅하면서 기존에 리포지토리를 관리하고 사용하던 Bitbucket의 SSH 설정을 정리하고자 한다. 설정 일단 터미널에서 Bitbucket에서 지원하는 암호화 알고리즘으로 된 ssh key를 생성한다. 우리는 ed25519 암호화 알고리즘으로 생성해 보자. passphrase를 입력하라고 하는 부분에서는 아무 입력 없이 엔터를 치고 넘어가면 된다. windows의 경우 git을 설치하면 git bash로 터미널을 이용할 수 있다. ssh-keygen -t ed25519 -b 256 키 생성이 완료되면 사용자 디렉토리에 .ssh 폴더가 생성되고, 폴더 내에 id_ed25519 파일과 id_ed25519.pub 파일이 생성되었을 것이다. 여기서 .pub가 ..
코로나 주변 모든 사람들이 다 걸려도, 다른 사람들보다 덜 조심해도 절대 걸리지 않던 코로나가 뒤늦게 찾아온 후기를 뒤늦게 남긴다. 날짜 기준은 확진 판정일이 1일차. 0일차 (2023-04-28 금) 전날의 일교차가 너무 심해서 패딩을 입고 다닐 정도였는데 어김없이 감기기운이 시작되고 몸이 아팠다. 서있거나 걸어 다니기가 힘들 정도로 어지럼증이 있었고, 두통에 몸살 기운이 있고 뭘 먹기가 쉽지 않아서 저녁에 회사에서 죽을 시켜서 먹었다. 일부러 늦게 퇴근해서 지하철을 앉아서 타고 집에 갔는데, 환승하고 두 정거장 가는 열차에서 서있을 때 정말 쓰러질 것 같았다. 어떻게든 버텨서 역에 도착했는데 맞고 가기 어려울 정도로 비가 와서 동생을 역으로 불러냈다. 역 근처에서 기다리다 우산을 받아 들고 집에 들어..