전체 글 200

취업 성공과 블로그 이전 공지

필자는 11월 30일 오전 11시경, 최종 합격 메일과 함께 취업에 성공했다. 이 블로그를 꾸준히 본 이웃들이라면 잘 알겠지만, 본인은 올해 1월부터 취준에 돌입하여 드디어 취업에 성공했다. 회사에 대해 자세히 언급하지 않겠으나, 서울시 마포구에 있는 회사에 합격했다. 막상 취업이 되고 나니 뭔가 대단한 무언가를 이루어냈다는 쾌감보다는 덜 한 것 같다. 아직도 내가 취준을 하고 있다는 느낌이 든다. 이제 뭘 해야 할까 살짝 막막하다. 11개월 동안 취업을 주목적으로 두고 생활을 이어갔는 데, 살짝 허무하기도 하며, 앞으로 일을 하면서 마음고생도 할 것 같다. 하지만 한 순간순간이 새로울 것 같다는 생각이 들어 어차피 직장을 다닐 것이라면 당연하게 배울 것이고, 겪어야 한다고 생각한다. 다시 본론으로 넘어..

카테고리 없음 2023.12.01

열아홉 개발자의 3년 간 git commit

고등학교 1학년 학교 생활을 시작함과 동시에 스스로에게 약속을 하나 했다. 그것은 좋은 곳에 취직하는 것도 프로젝트를 많이 하는 것도 아닌 다음과 같이 하는 것을 목표로 하였다. 1학년(2021) 때 365 커밋 이상 2학년(2022) 때 730 커밋 이상 3학년(2023) 때 1095 커밋 이상 졸업(2024년 2월) 전에 2190 커밋 이상 이를 목표로 한 이후는 당시 1학년 때 1일 1커밋이 유행하고 있었고, 꾸준히 커밋을 더 하고싶다고 생각하게 되었다. 하지만 아무런 내용이나 생성, 수정, 삭제 등을 통해 "가짜" 커밋을 만들어내는 것보다는 유의미한 작업들을 하며, 커밋을 꾸준히 진행하는 것이 의미가 있다고 생각이 들어 목표로 삼았다. 사실 시작할 당시에는 되지않을 것이라 생각하였지만, 결국 오늘..

일상 2023.10.04

dev'log 2주일 회고

2023년도 8월 25(금)부터 8월 31(목)까지 dev'log 를 개발하면서 현재 겪고 있는 문제들에 대해서 작성하면서 한 번 더 고민하는 시간을 갖고자 블로그를 작성하고 있습니다. 생각하는 개발자 개요 git commit 을 즉시 가져오는 것은 비용적으로 좀 힘들것이라 판단했습니다. 일단 생각하고는 있는 걸로는 저 혼자만 사용하려는 목적으로 개발하고 있지만, 혹여나 사용자가 500명만 넘어도 꽤나 힘들것 같다는 생각을 하게 되었습니다. (사실 지금 테스트하는 현재도 성능상으로 불안불안합니다.) 그래서 NestJS의 Scheduler Task로 Cron을 지정해주어 background에서 동작하도록 한다면 특정 시간대에만 갱신되기에 무리를 최대한 줄일 수 있으리라 생각했습니다. 헌데, 이러한 일련의 ..

잡다한 개발 2023.08.31

dev'log 1주일 회고

2023년 8월 18일(금)부터 현재(2023년 8월 24일(목))까지, 약 일주일간 git commit을 기반으로 블로그 포스트를 해주는 서비스를 개발했습니다. 배포까지 감안하고 개발을 시작했기에 평소 자주 사용하였던 Java 기반의 Spring framework가 아닌 JavaScript(TypeScript) 기반 (정확히는 node 기반)의 NestJS를 시도하였습니다. (기존까지는 실 서비스를 하는 모든 프로젝트들은 Spring framework를 사용하였고, 간단한 토이프로젝트들만 NestJS를 사용하였습니다.) 사용하고 있는 기술 스택 NestJS (TypeScript) Next.js (TypeScript) MongoDB (6.0.9) 난생 처음으로 Next.js를 현재 시도해보고 있습니다. ..

잡다한 개발 2023.08.24

[Soda] Tomcat is not listening...

Java 17+ 에 친화적인 웹 프레임워크를 직접 만들고자 Embedded Tomcat를 사용하여 HTTP 요청과 응답이 정상적으로 이루어지는지가 궁금하여 테스트하던 도중, Tomcat Server가 Listening 하고 있는 port number가 -1로 나와서 당황하였다. 그도 그럴 것이 필자는 스프링 부트를 통한 간접적인 사용을 주로 했었기에 어떻게 해결해야 하는 지를 몰랐다. 물론 Tomcat을 직접 사용해 본 경험이 있으나 7 ~ 8 사이의 버전을 주로 사용했었고, 해당 EmbeddedTomcat의 버전은 10.1.11로 현재 마일스톤 버전들을 제외하고선 가장 최신 버전이다. 문제 접근 필자가 기억하기로는 다음과 같이 설정하면 port number가 설정되었다. Tomcat tomcat = n..

Soda 2023.08.10

8번째 면접을 준비하며

아마 8번째가 맞을 거다. (대면 2번, 비대면 5번) 면접을 눈 앞에 두고... 면접을 눈앞에 두고, 기술 면접과 더불어 임원 면접 준비를 하고 있습니다. 주변에 통화 면접을 봤던 친구들이 여럿 있어 공통적으로 자주 나오는 질문들을 간추려서 각 항목마다 답변을 달고 workshop-6349.tistory.com 이전(4월 26)에 작성했었지만, 이제는 기술적인 공부도 물론 중요하지만, 지금까지 총 7번 동안의 면접을 보면서 내가 왜 최종합격까지 못 가는 이유를 어느정도 찾은 듯 하다. 조만간 면접이 한 번 더 있는 데, 이번에는 기필코 1차 합격을 하고자 한다. (2차까지 가서 최종에서 떨어진 적도 있긴 하지만) 내가 대면 면접을 보고 나면 항상 피드백을 해주셨는 데, 대개 다음과 같은 내용이었다. 자..

공부 2023.06.30

학교 축제용 디스코드 봇 개발기(記)-2

해당 글은 대구소프트웨어마이스터고등학교에 재학 중인 3학년의 글입니다. 학교 축제인 "대소고 E-SPORTS"에 사용될 디스코드 봇의 소스코드를 주로 다룰 것이며, 이전 글과 이어집니다. 데이터베이스 선정 기준 이전 글에서 언급하였듯 mongoDB를 데이터베이스로 사용하고 있습니다. RDBMS가 아닌 NoSQL인 mongoDB를 택한 이유는 비동기 친화적이며, 대량의 데이터를 처리해야 하는 애플리케이션에 높은 확장성을 제공하기 때문에 택하였습니다. MongoDB를 소스코드에서 접근한 방법 우선 node 생태계에서는 monogoose라는 라이브러리를 지원해주고 있기에 손쉽게 MongoDB에 접근할 수 있습니다. 편리한 접근을 위해서는 model을 객체로 하여 접근하는 것인데, 이 역시 매우 쉽게 지원하고 ..

학교 축제용 디스코드 봇 개발기(記)

해당 글은 대구소프트웨어마이스터고등학교에 재학 중인 3학년의 글입니다. 학교 축제인 "대소고 E-SPORTS"에 사용될 디스코드 봇의 요구사항, 코드들을 주로 다룰 예정입니다. 복잡한 요구사항에 얽매이지 않고, 주도적으로 개발하는 것을 정말 오랜만에 진행해보다 보니, 뭔가 어색합니다. 마음이 정말 평화롭게 개발하며, 천천히 개발에 대한 흥미를 다시금 되찾는 개발기(記)였습니다. 만들게 된 계기 학교 축제인 "대소고 E-SPORTS"를 진행함에 있어 관객들은 굉장히 큰 역할을 수행합니다. 하지만 게임 중계만으로는 관객들의 눈길을 계속해서 끌고 집중을 돕는 데에는 한계가 있습니다. 그렇기에 주체인(실명 대신, 이니셜로만 표현하겠습니다.) YBH의 부탁으로 접근성이 높은 디스코드를 활용한 게임 배팅 기능을 탑..

면접을 눈 앞에 두고...

면접을 눈앞에 두고, 기술 면접과 더불어 임원 면접 준비를 하고 있습니다. 주변에 통화 면접을 봤던 친구들이 여럿 있어 공통적으로 자주 나오는 질문들을 간추려서 각 항목마다 답변을 달고 있습니다. 공통적으로 나왔던 질문들은 다음과 같습니다. 1. REST API의 정의 2. Transaction이란? 3. 토큰과 세션의 차이 4. 정규화와 반정규화의 차이 5. 우리 회사에 왜 지원했는가 6. 오픈소스에 관심이 많은 이유 (이력서에 오픈소스에 관심이 많다고 작성함) 순서대로 짧게 답변을 달아보자면 A1. 리소스에 이름을 부여한 후, HTTP를 통해 리소스에 접근하는 방식 - HTTP Method를 통해 접근하며, CRUD 마다 METHOD를 지정한다. - 이러한 HTTP 표준 규격을 잘 지키며 만든 RES..

공부 2023.04.26

[Spring] Spring 3.0.0 AutoConfigure 사용

문제 발단 스프링을 활용한 오픈 소스 라이브러리 "ReflectiveCipher"를 개발 중 자동 빈 생성과 application.yml 자동 완성을 지원하기 위해 AutoConfigure를 설정 중 문제가 발생했다. 위와 같은 프로젝트 구조로 이루어져 있는 데, auto-configure 모듈이 Spring 라이브러리를 사용하여 자동 빈 생성을 해준다. 스프링에서 편하게 제공해준다고 하여, baeldung과 여러 블로그 글들을 참고하여 resources/META-INF 디렉토리를 생성. 그리고 그 안에 spring.factories를 추가하면 손쉽게 AutoConfigure가 된다고 하여 적용을 해보았지만, example 모듈(스프링 환경)에서 특정 빈을 조회하도록 하였지만, 해당 빈이 존재하지 않는다..

Spring 2023.03.13