전체 글 15

나의 첫 스타트업, 그 마침표를 찍는 날

정말 오랜만에 블로그에 글을 씁니다.지난 1년 3개월, 제 자신을 돌아보기보다 눈앞의 일에만 매달려 숨 가쁘게 달려왔습니다.막상 키보드 앞에 앉으니 어디서부터 이야기를 시작해야 할지 막막하기만 합니다. 2025년 7월 31일, 저는 첫 직장에서 퇴사했습니다.회사의 경영난으로 모든 동료가 권고사직을 권유받았고, 한날한시에 회사를 떠나는 낯선 풍경의 주인공이 되었습니다.이 글로써 지난 시간에 정직한 마침표를 찍어보려 합니다. 2024년 4월, 저는 한 스타트업의 클라이언트 프로그래머로 사회생활을 시작했습니다.언리얼 엔진5를 이용한 MMO 프로젝트는 제 첫 프로젝트였습니다.학부 시절 TCP/UDP를 공부하긴 했지만, 실전에서의 멀티플레이 게임 개발은 차원이 다른 어려움으로 다가왔습니다.거의 모든 로직에서 '다..

Things/일상 2025.07.30

코테 관해 잡담 (당신도 코테공부, 미루고 있나?)

본인은 코테공부를 매우 늦게, 대략 취업준비 1달전쯤 시작했다. (현재 2월 말 평균 30분, 레벨3 -> 평균 1시간 정도 걸린다. 위에서 말했듯이 2~3일이 -> 1시간까지 단축된거다. 이렇게 문제를 풀어볼수록 시간은 분명히 단축된다. 유형별 문제를 다 풀어봤는데도 단축되지 않는다면 3번 조언으로 가보자 초반엔 힘들수도 있으니 방학에 시작하자. 방학내에 적응이 되면 학기중에 30~60분 시간내어 한문제씩 푸는건 일도 아닐꺼다. 3. 손을 움직이자 코딩테스트의 경우 문제의 유형은 대부분 비슷하다. 문제 풀이에 사용되는 방법도 유사하다. 고등학교때, 수학 유형이 비슷비슷하고 응용했던것처럼 코테도 똑같다. 문제가 있고, 비슷한 유형은 비슷한 개념을 사용해 푸는 것처럼 말이다. (물론 의도와 다른 풀이를 사..

프로그래밍 2024.02.24

[프로그래머스] 숫자 변환하기 (레벨 2) - C++

문제 설명 자연수 x를 y로 변환하려고 합니다. 사용할 수 있는 연산은 다음과 같습니다. x에 n을 더합니다 x에 2를 곱합니다. x에 3을 곱합니다. 자연수 x, y, n이 매개변수로 주어질 때, x를 y로 변환하기 위해 필요한 최소 연산 횟수를 return하도록 solution 함수를 완성해주세요. 이때 x를 y로 만들 수 없다면 -1을 return 해주세요. 제한사항 1 ≤ x ≤ y ≤ 1,000,000 1 ≤ n curCount + 1) { numQueue.push({curX + n, curCount + 1}); checked[curX+n] = curCount+1; } if(curX * 2 curCount + 1) { numQueue.push({c..

프로그래밍 2024.02.23

기프티쇼 비즈 API (에러해결)

현재 개발중인 앱에 기프티쇼 API 를 사용해 개발중에 참고점? 변경점. 본인은 기프티쇼 API 를 Google Cloud Function에서 호출함. 그런데 2023-10-31 부터 호출이 자꾸 Timeout 유도함.. 진짜 우연찮게 혹시나 싶어서 트라이 해본 방법이 해결에 도움되어 공유해 봄. 필자의 Cloud Function은 기본적으로 미국에서 실행되게끔 설정이 되어있음.(us-central1) 진짜로 혹시나 싶어 함수의 리전을 한국(asia-northeast3)로 설정 하였음. 정말 어이없게도 잘 실행된다... 앞으로는 API 호출 시, 자신의 서버 위치도 확인하자..! 한국 이외 호출 시 block 걸어놓은 api 은근 많다~!

프로그래밍 2023.10.31

[Python] 여러 개의 오디오 파일을 하나의 오디오 파일로 (pydub)

여러개의 오디오 파일을 하나의 파일로 합치고 싶을 때가 있다. 그 경우에는 pydub 패키지를 이용해서 이를 합칠 수 있다. 일단 pip를 이용해 pydub을 설치하자 pip install pydub 예를 들면 a.mp3 파일과 b.mp3 파일을 combined.mp3 파일로 합치고 싶을때 아래와 같은 코드를 사용한다. from pydub import AudioSegment def combine_mp3_files(input_files, output_file): combined_audio = None for file in input_files: audio = AudioSegment.from_mp3(file) if combined_audio is None: combined_audio = audio else:..

[Flutter] Firebase 구글 소셜 로그인 사용자 번호받기 (feat. 번따, android)

플러터 앱을 제작하며 구글 소셜 로그인 기능을 넣어보자. 시작하기 전에 필자의 프로젝트는 핸드폰번호가 필수불가결이다.. 카카오, 네이버 소셜 로그인의 경우 사실상 쉬운 구조와 핸드폰 번호를 직관적으로 돌려주는데 반해, 구글의 소셜 로그인의 경우 개인정보를 아주 제한적으로 제공하고, 이를 사용자의 동의를 받아야 하며 직접 HTTP request를 사용해야 하기 때문에 초보자가 접근하기 힘들 것이라 생각하여 작성하였다. ( 필자도 2일정도는 까먹은듯.. ) 이를 구현하기 위한 가장 쉬운 방식은 Firebase의 Auth 시스템을 이용하는 것이다.. 필자는 이와같이 Firebase Auth의 Google Social Login 을 활성화 시켜주었다. ( 그냥 새 제공업체 추가로 추가해주자 ) 자, 이제 사용자..

[자료구조&알고리즘] 기초부터 탄탄히 Prologue - 1

오랜만에 포스트를 올리는 것 같은데.. 이번에는 자료구조와 알고리즘 대해 알아보는 시리즈의 시작을 해보고자 한다. 지금 벌려놓은 시리즈가 많아 사실 이 포스트를 올릴지 고민하였으나 새로운 시도를 하고싶은 욕구를 참을 수가 없는 것이 개발자의 운명 아니겠는가 ㅋㅋ 쨋든 잡담은 여기까지 하고 시작해보자. 아 맞다, 시작하기 전에 공지하고 싶은 사항이 있으니 이 포스트를 읽는 독자라면 꼭 알아두길 바란다. 자료구조를 공부할 때, C 혹은 C++과 같은 unmanaged language를 사용하길 바란다. 다 이유가 있다.. Unmanaged, Managed Language란 무엇인가? 메모리 측면에서 볼 때, 컴퓨터 언어를 크게 managed, unmanaged 2가지로 분류한다. managed (관리된) u..

Unity Behavior Tree 시스템 개요 - 1 ( Behavior Tree 란? )

분석이 끝나고 올리지 않으려 했는데 Behavior Tree를 검색하여 접속하는 사람이 많아 간단하게 시스템을 설명해보려 한다. 튜토리얼 11개 + 커스터마이징을 하였기 때문에 한 포스트에 다 설명하진 못할 것이다. 하지만 조금이라도 시스템을 파악할 수 있다면 많은 독자들에게 도움이 되리라 생각해 이를 올려볼 생각이다. 일단 Behavior Tree가 무엇인지부터 살펴보자. Behavior Tree 란? 게임에서 Behavior Tree란 Behavior( 행동 ) 을 Tree 구조로 만들어 AI 의 행동을 이용해 제어하는 것이다. 행동을 트리로...? 약간 이해되지 않을 수 있다. 하지만 이렇게 생각해보자. Tree는 Node를 저장하는 하나의 컨테이너이다. 근데 자료구조를 공부하며 배운 Node란 과..