본문 바로가기

개발 이모저모22

2022년 회고: 개발자로 보낸 첫 일년 개발자가 되고 첫 일년이 지났다. 처음이라는 것은 무척이나 강렬하지만 그만큼 금세 휘발되고 마는데, 회고를 통해 정리하고 기억하려고 한다. 1. 퇴사 3개월을 채우지 못하고 회사를 그만뒀다. 근원적인 이유는 내가 절대 성장하지 못할 것이라는 확신 때문이었다. 파견된 프로젝트의 개발 환경은 그야 말로 최악이었다. 당시 파견 직전에 김영한님의 스프링 원리 기본편 강의를 들었었는데, 파견지에 가보니 내가 바로 그 첫 강의에 언급되는 지옥의 EJB를 써야했다. Model1 방식으로 설계되어 있어 한 화면에 5천 줄이 넘는 JSP 소스를 욕을 뱉으면서도 수정 요청이 들어오면 처리하고 EJB 가 어떻게 동작하는지도 모른 채로 다른 소스코드를 눈치껏 보면서 파악했다. 사실 EJB는 아직도 뭔지 모르겠다. 일주일에 한.. 2023. 2. 14.
운영체제와 정보기술의 원리 후기 운영체제 운영체제를 공부하려고 마음 먹은 두 가지 이유가 있다. 프로그래밍 언어로 작성한 코드가 어떻게 컴퓨터를 움직이는지가 궁금했다. 추상화의 거의 끝편에 있는 내 코드가 실제로 소프트웨어나 하드웨어를 움직이는 원리와 방식이 알고 싶었다. 유통기한이 긴 지식을 쌓고 싶었다. 언어나 프레임워크는 언제든 바뀔 수 있으니 기저가 되는 컴퓨터 공학을 공부하라는 말은 어느 장소에서든 쉽게 들을 수 있는 말이었다. 친절하고 재밌는 책 글의 짜임새에서 글쓰기에 대한 내공이 느껴진다. 저자가 교단에 오래 있어서일까 굉장히 친절하고 재밌다. 책은 정보기술의 역사부터 시작해서 운영체제를 이루고 있는 전반적인 개념들에 대해 서술한다. 단순히 개념의 나열이 아니라 전체적인 흐름을 중심으로 글이 진행되기 때문에 이해가 쉽다... 2022. 9. 13.
DND 7기 활동의 기술 회고 오픈소스 하나의 기술적인 궁금증이 아니라 프로젝트의 전체적인 그림을 참고하고 싶을 때 오픈소스를 활용하게 됐다. 같은 기술스택으로 구현된 오픈소스 프로젝트를 찾아서 파악하는 것은 아주 효율적인 방법이었다. 패키지 설계나 예외 관리, 잘 쓰여진 다양한 코드를 말이 아니라 코드 레벨로 볼 수 있다는 게 좋았다. REST API 그간의 경험에서 REST API로 API를 설계한 적은 없었는데 이번에 확실히 많이 배우게 됐다. HATEOAS의 사용방법이나 개념을 어느 정도 학습하다가 이 단계까지 구현하는 것은 무리일 것 같아 Level 2 까지의 깊이로 설계했다. HTTP 메소드와 Collection, Element를 이용해서 API를 구성하다 보니 요청 URL이 굉장히 깔끔해졌고 식별하기 좋았다. 요청 URL.. 2022. 8. 26.
AWS RDS Lock 해결하기 0. 인트로 일어나니 아침부터 서버가 뻗어 있습니다. 서버에 요청을 날려보니 504 에러가 응답했고 부랴부랴 AWS에 접속 해서 로그를 뒤져봤습니다. response header를 읽는 중에 타임 아웃이 발생했다고 하네요. response 데이터를 읽어드릴 때 버퍼 크기를 조정하면 해결 된다고 해서, 자세한 내용은 모르지만 엔진엑스 설정을 바꿔주었습니다. 하지만 결과는 달라지지 않았습니다. 1. 원인은 DB Lock RDS에 접속 해서 활성 세션을 확인 해보니 아니나 다를까 DB가 잠긴 상태였습니다. DB Lock을 해결하려면 가장 우선은 잠겨 있는 프로세스를 삭제 해주어야 합니다. 직접 CLI로 프로세스를 KILL 해주어도 되지만, DB 클라이언트 도구를 이용하면 더욱 간단합니다. DBeaver에서는 .. 2022. 8. 17.
스프링 프레임워크란 무엇인가? 자바 진영의 혹한기였던 EJB가 지나가고 스프링, 봄이 왔습니다. 우리는 Spring Framework를 사용하여 여러 프로젝트를 진행합니다. 작은 프로젝트를 진행했음은 물론이고 혹은 실제로 운영되고 있는 서비스에서도요. 하지만 아래 질문에 대한 답은 여전히 쉽지 않습니다. 무엇이 Spring Framework 입니까? 흔히 이렇게 답할 수 있습니다. Spring Framework는 자바 진영의 객체지향 프레임워크입니다. Spring Framework는 IoC와 DI, AOP 를 지원하는 프레임워크입니다. Spring Framework는 MVC 아키텍처 패턴의 개발을 지원하는 프레임워크입니다. 우리는 종종 Spring Boot나 Spring Security를 사용합니다. 이것도 Spring Framewo.. 2022. 8. 2.
Github Actions + Docker Compose + Elastic Beanstalk GIthub Actions, Docker compose, Elastic Beanstalk으로 CI/CD 파이프라인 구축하기 딱 이 세 가지 조합으로만 구성된 간단한 CI/CD 파이프라인의 레퍼런스가 없어서 도움이 되시길 바라며 작성합니다. 이 조합은 CI/CD를 구성하는 데에 과도한 리소스를 쏟을 만한 시간이 없을 때 선택하면 좋을 것 같습니다. 추상적인 CI/CD 흐름은 아래와 같습니다. 정확한 흐름은 아니지만, Local에서 Remote Repository로 Push가 발생하면 GIthub Actions가 이를 감지하여 EB에 Docker Compose 파일을 전달해서 EB 내부에서 실행하도록 구성합니다. 구성 순서는 아래와 같습니다. Docker에 대한 기본적인 이해가 필요합니다. Dockerfil.. 2022. 7. 21.