2022년이 얼마 남지 않은 이 시점에 나는 개발자로 경력을 시작한지 1년 7개월이 되었다. 빛나는 3년차가 되기 위해 정신없이 공부를 해온 것 같은데 돌이켜보면 여러 가지 일을 한번에 하느라 집중을 제대로 못했다는 생각도 든다. 한해동안 내가 무엇을 했는지 정리해보려고 회고를 적는다. 개발 관련 강의 6개 완강 인프런 강의 수료증을 보니 올해에만 6개 강의를 완강했다. 자바와 스프링 강의인데, 스프링의 threadlocal, 트랜잭션과 전파, 자바8의 Stream, 동시성 처리 등을 공부했다. 바쁘다, 바쁘다 하는 와중에도 강의를 끝마쳤다는 건 정말 칭찬할만하다. 그런데 저 강의들의 내용들을 전부 다 내가 소화했다고 보기는 어려워서 가볍게 한 번 더 들어야겠다. 컴퓨터과학 전공 시작 올해부터 컴퓨터과학..
담당하고 있는 시스템에 엑셀 양식을 다운로드받는 기능이 있다. 그냥 양식만 다운로드받는 게 아니라 데이터 유효성 검사 기능이 추가되어 있는데, 아래와 같은 기능이다. 이미지출처 : https://meaningone.tistory.com/546 엑셀 드롭다운 목록 만들기 및 삭제! 오늘은 엑셀 드롭다운 목록 만드는 방법에 대하여 알아보겠습니다. 엑셀에는 데이터 유효성 검사라는 기능이 있습니다. 용어가 확 와 닿지 않을 텐데요. 사용자가 셀에 입력하는 데이터를 제어 meaningone.tistory.com 이번에 이슈가 된 건 엑셀 양식 다운로드를 받았는데, 드롭다운 목록이 사라진 것이었다. 다운로드받은 엑셀을 열려고 하면 아래와 같은 화면이 뜬다. 그래서 "예"를 누르면 파일이 열리기는 하지만 드롭다운목록..
서버를 AWS로 옮기면서 배포자동화를 하고 있었는데, BeforeBlockTraffic에서 UnknownError가 났다. 알아보니 배포할 EC2에도 CodeAgent가 깔려있어야 CodeDeploy랑 연결이 되는데, 그게 없어서 문제였다. 아래 블로그글대로 EC2에서 CodeAgent를 설치후 실행하면 아래 이미지처럼 성공한다. https://jinmay.github.io/2020/05/13/aws/how-to-install-code-deploy-agent-ubuntu/
헤로쿠가 유료화된다고 해서 다시 AWS로 개인프로젝트 서버를 이사했다. 무료 도메인도 사서 쓸 수 있다길래 요번에는 그것도 사용해봤다. 그런데 HTTP 요청을 HTTPS로 리다이렉션하는 과정에서 조금 애를 먹어서 다음번에도 쓸 수 있게 하고, 혹시 나처럼 AWS가 익숙하지 않은데 HTTPS를 사용해야 하는 사람들을 위해 글을 쓴다. 리다이렉션 외에 인증서 발급, ACM, Route 53 설정 등은 제외한다. 나의 경우 애플리케이션은 8090 포트를 사용했다. 이럴 경우, 리스너와 대상 그룹(Target group)을 아래와 같이 구성해야 한다. 리스너는 요청을 받는 곳이다. 그러므로 HTTP 요청이 들어올 때 HTTPS로 리다이렉션하려면 HTTP의 80포트를 HTTPS의 443포트로 리다이렉션해주어야 한..
최근 진행했던 프로젝트에서 동시성 제어를 해결해야 했다. 자바에서 동시성 제어를 위해 제공하는 건 세 가지 방법이 있다. 첫째, synchronized, 둘째, Atomic variable, 셋째, volatile. 나는 이 중 Atomic variable을 사용했는데, 왜 Atomic Variable을 사용했는지 이유를 정리해보고자 한다. 나름의 리서치를 통해 Atomic Variable을 사용하긴 했지만 반드시 Atomic Variable을 사용해야 한다고 주장하는 글도 아니다. 성능 저하를 막기 위해 가장 일반적으로 알고 있는 synchronized 같은 경우는 가장 안전하다고 알려져 있지만, 성능 저하가 발생한다는 단점이 있다. 현재는 스케줄로 동작하지만 내가 작업한 부분의 경우, 후에 대규모 호..
비밀글로는 아직 정리가 덜 된 글을 몇 개 올리긴 했지만, 공개글로는 그동안 거의 글을 올리지 않았다. 그래서 간단히 그동안 내게 있었던 일들을 정리해본다. 1. 코로나 확진 평소처럼 감기일거라고 생각했는데, 혹시 몰라 받은 코로나 검사에서 확진되었다. 아침에 확진문자받는데 나도 내가 확진이라고 하니 놀랐고, 확진이라고 알아서 그런지 그 이후로 상태가 내내 안좋았다. 다행히 시간이 좀 지난 지금은 괜찮긴 한데, 나는 코로나 이후로 왜인지 모든 의욕을 잃어버렸다. 2. 사랑니 뽑아야지 뽑아야지 하고 있던 사랑니를 드디어 뽑았다. 아직은 오른쪽만. 코로나 격리 풀리자마자 사랑니 수술한거라 이 기간은 공부를 거의 못했다. 3. 이직에 한 걸음 더 어느 회사에서 서류전형을 통과했으니 다음 전형으로 진행하자는 연..
TASK 이번에 맡아서 개발한 부분은 A시스템에서 B시스템이 사용할 파일을 업로드받고 B시스템, C시스템으로 API 연동하여 전송, 후처리 요청까지 하는 부분이었다. 그렇게 큰 업무는 아니었지만 이 기능이 본 프로젝트를 진행하는 이유였기 때문에 중요했다. 관건은 작업 요청 목록이 여러 개 있고, 스케줄로 작업을 실행하는데 작업이 하나 이미 실행중이라면 다음 작업은 작업이 끝날 때까지 실행되지 않아야 하고, 여러 시스템과 연동하면서 발생할 예외 처리를 적절히 해주어야 한다는 것이다. 당연히 트랜잭션도 고려해야했다. 그래서 개발을 진행하며 Transaction이 시작되고 끝나기까지 내부 코드는 어떻게 돌아가는지 살펴보고(Transaction 관련 내부 코드 뜯어보기) 중첩된 @Transactional을 실험..