그렇다 나는 응애다. 여름에 땀 뻘뻘 흘릴 때 입사를 해서(7월 중순) 오늘도 기어이 땀을 흘리고 말았다.(3월인데 왜 날씨가 25도를 찍었지?) 그냥 가볍게, 현재까지 회사는 어떻게 적응하고 있는지, 자기계발은 어떻게 진행되고 있는지 기록하려고 한다. 회사 어렵다. 그냥 어렵다. 솔루션 SI 개발과 커스텀을 진행하면서 개발도 신경을 써야 하고, 고객사와의 소통(?)도 신경을 써야 하고, 또 내가 성장하려는 무언가를 찾기 위해 끊임없이 탐구하고 노력해야 한다. 처음에는 개발도 크게 어렵지 않았고 대리님의 칭찬 덕분에 많은 일을 해내고 있다고 착각했었다. 지금 돌이켜보면 나는 그냥 응애다. 늘 수동적인 인간이 되지 않기 위해서 무언가를 열심히 찾아 나서고 있지만, 무언가를 찾으면 또 바빠지는..
사람들은 살면서 "아 저거 꼭 해보고 싶었던 건데..." 하면서 후회하는 것이 있을 것이라 생각합니다. 저는 그중 하나가 웹소켓을 이용해 실시간 채팅 서비스를 만들어보는 것이었습니다. 여태 뭐하다가 왜 이제 하냐? 그것은 설날이기 때문이다... (본가에 와서 노트북 뚝딱거리기) 웹소켓을 이용해 실시간 채팅 서비스를 구현하면서 처음 접하는 sockJS, STOMP, 메시지브로커, 브로드캐스팅 등등... 어려운 용어와 개념을 익히는 데 시간이 걸렸기에 블로그에 정리해 놓고 많은 사람들이 쉽게 이 개념을 습득해서 자신의 서비스, 프로젝트에 이용해봤으면 하는 바람에 글을 적어봅니다. 웹소켓이란 무엇일까? 이번의 글의 핵심 주제입니다.많이들 들어봤을 내용은 "웹소켓을 이용해 실시간 채팅 서비스를 ..
회사 업무를 수행하다 보면 현재 개발 중인 서비스에 로그인해서 테스트를 진행하는 경우가 빈번하게 발생한다. 단위 테스트, 통합 테스트를 이용해서 로직의 안정성을 높이는 것도 엄청 중요한 테스트지만 내가 직접 하나하나 버튼을 클릭하면서 눈으로 확인하는 테스트도 중요한 테스트라고 생각한다. (물론 SI 특성상 테스트 코드를 짜는 것 자체가 불가능하다고 생각한다. 거의 주 단위로 바뀌는 요구사항 덕분에...) 그렇게 크롬으로 로그인 계정 하나 만들어서 서비스 접속하고 이것 저것 눌러보고... 다른 계정으로도 동시에 접속하기 위해 시크릿 모드를 열어서 이것 저것 눌러보고.... 또 다른 세션을 이용해야 하는데 크롬은 기본 세션, 시크릿 모드 2개가 끝이라 엣지를 켜서 이것저것 눌러보고... 만약..
오랜만에 사이드 프로젝트를 진행하면서 Docker를 다시 사용했는데 웹서버로 Nginx를 사용하면서 다른 컨테이너로 리버스 프록시를 못하는 문제를 마주하게 되었다. 프로젝트의 통신 흐름은 위 그림처럼 진행이 된다. 1. 사용자가 HTTP 요청을 보냄2. Nginx는 HTTP 요청을 잡아서 스프링부트로 요청을 전달 그러나 위 과정을 진행하면서 생각도 못했던 문제를 마주하게 되었다. 그 문제는 도커 네트워크 불일치 문제로 인해 Nginx가 받은 HTTP 요청을 스프링부트로 못넘기는 문제였다. 도커 컨테이너끼리의 통신은 도커 네트워크를 통해 이루어지게 되는데 통신하려는 두 컨테이너가 같은 네트워크를 사용하고 있지 않아서 발생한 문제이다. 나는 컨테이너를 구축할 때 아래의 방법으로 컨테이너를 구축..
작성하려던 API는 하루 방문자 수를 단순히 COUNT 하는 쿼리였다. /** * 오늘 하루 방문자 수 조회하는 메서드 * */ public long dailyVisitedCount() { LocalDateTime startDate = LocalDate.now().atStartOfDa..
원래 '총균쇠'를 읽으려고 했었는데 하필 동작 도서관에 '총균쇠'가 전부 대출 중인 관계로 페이커의 추천 독서 목록을 살펴봤었다. 그중에 '녹나무의 파수꾼'이라는 책이 있었고 내가 많이 접했었던 '히가시노 게이고'의 소설이라서 가볍게 읽을 겸 이 책을 선택했다. 거대한 녹나무는 전설이 있다. 그 전설은 아는 사람들끼리만 전해져 내려왔고, 해당 녹나무를 지키는 파수꾼이 존재한다. 레이토는 처음에 불운한 상태로 시작하게 되고 감옥(?)까지 들어갔으니 정체불명의 사람으로부터 부탁받은 변호사가 찾아오게 된다. 변호사에게 듣기를 '무죄를 만들어줄테니 정체불명의 사람이 시키는 대로 하겠냐'라는 얘기를 들었다. 수락하면 변호 비용 + 무죄를 만들어 줄 것이고, 거절한다면 이 역경을 혼자 헤쳐나갸야 했다. 더 ..
올해 여름에는 SSAFYnity 컨퍼런스에 참여했었는데 이번에는 도움을 많이 받았던 보초님이 연사로 오시기도 하셨고, AWS 12년 차 클라우드 엔지니어분도 오신다고 하셔서 신청하고 참여하게 되었다. 2024년 11월 30일(토)에 역삼 멀티캠퍼스 18층에서 진행되었다. 나는 다행이도 기존에 알던 사람들과 함께 갔었고 그 안에서도 AWS에 취직했던 다른 형도 만나는 기회가 있었다.(역시 싸피가 이런 네트워킹은 최고다) 생각보다 많은 사람들이 왔어서 놀랐다. 기억상 100명이 넘게 세미나에 참석해 주었다. 나는 1번 보초님 연설과 4번 AWS 엔지니어분의 연설을 듣고자 신청했고 운 좋게 1, 4번으로 순서를 배정받게 되었다. 보초님 강연 늘 보초님 강연을 들을 때마다 드는 생각이지만 항상 ..
개인 프로젝트, 팀 프로젝트에 이어 사내 프로젝트까지 스프링 시큐리티를 담당하며 시큐리티에 대한 이해도가 많이 필요하게 되었다. 특히 시큐리티는 필터 체인을 통해 여러 가지 인증/인가와 관련된 필터를 타게 되는데 해당 필터들의 대한 이해가 동반되지 않으면 스프링 시큐리티를 사용하는 데 있어 많은 어려움을 겪게 된다. 우선 스프링 시큐리티를 활성화하게 되면 아래와 같은 기본적으로 정의된 필터를 타면서 인증/인가 절차를 진행하게 된다. 그 중에 UsernamePasswordAuthenticationFilter라는 것이 6번째 필터로 존재하게 되는데 해당 필터의 존재의 의미와 역할에 대해 알아보려고 한다. 왜 이렇게 익숙한 이름이지? 처음에 UsernamePasswordAuthenticationFil..