본문 바로가기
반응형

모든 글 모음185

알고리즘을 내 것으로 만드는 법 오늘 버블소트 문제를 풀어봤다.코드 자체는 익숙했지만 왜 그렇게 논리가 구성되었는지는 고민을 해본 적이 없었다. 또 다른 정렬 문제가 나왔을 때 버블소트로 풀려고 한다면 코드의 논리를 이해해야한다고 생각했다. 따라서 버블소트의 코드를 보면서 이해하는 과정을 적어봤다. 다른 알고리즘도 비슷하게 공부할 수 있겠다는 생각이 들었기 때문이다. 알고리즘은 다음의 방법으로 분해해봤다.코드 훑어보기알고리즘의 목적 파악하기알고리즘 적용시 구체적인 결과 파악하기알고리즘이 해결하는 문제를 작은 문제로 쪼개기각각의 문제를 코드로 옮겨 보기내코드와 알고리즘 코드 비교 버블 소트를 예로 들어보자. 1. 코드 훑어보기: 코드 전체의 구조를 눈에 익힌다.def bubble_sort(nums): swapping = True .. 2026. 2. 26.
파이썬과 OOP로 Asteroid 게임을 만든 썰 https://youtu.be/V4T90IOySG0OOP를 배우게 되었다. 파이썬 문법을 익힌 후에는 간단한 함수나 스크립트를 작성할 수 있었다. 하지만 웹사이트나 게임처럼 규모가 있는 프로그램을 만들기에는, 내가 알고 있는 지식만으로 전체 구조를 설계하는 일이 쉽지 않았다. 그러던 중 OOP를 배우면서 클래스, 추상화, 상속, 다형성의 개념을 접하게 되었다. 객체를 하나의 모델로 정의하고, 그 객체들이 서로 상호작용하도록 설계하는 방식은 이전과는 전혀 다른 관점이었다. 특히 프로젝트를 통해 직접 구현해보니, 이론으로만 배웠을 때보다 이해가 훨씬 또렷해졌다. 예전에는 이론을 충분히 배우고 난 뒤에야 프로그래밍을 시작해야 한다고 생각했다. ‘아는 것이 없는데 어떻게 만들 수 있을까’라는 생각 때문이었다. .. 2026. 2. 22.
Boot.dev | 백엔드 개발자 준비 PM 인턴십을 종료한 후 나는 백엔드 개발자로 진로를 정했다. 회사 TPM님과 상담을 하며, 소프트웨어 엔지니어로 성장하려면 결국 백엔드에서 기본기를 다져야 한다는 조언을 들었다. 개발자는 소프트웨어를 설계하고 구현하며 운영하는 사람이라는 점에서 그 말에 공감했다. 그 생각에는 크래프톤 정글에서의 경험도 영향을 주었다. 5개월간 합숙하며 자료구조, 운영체제, 네트워크 등 CS 기초를 몰입해서 학습했다. 그 과정에서 소프트웨어는 단순히 기능을 구현하는 일이 아니라, 구조와 시스템을 이해하는 일이라는 점을 느꼈다. 하지만 현실의 채용 환경은 녹록지 않았다.대 AI 시대에 접어들면서 기업들은 신입을 육성하기보다는 즉시 실무에 투입 가능한 인재를 선호하고 있다. 신입 채용 공고 자체도 크게 줄어들었다. 이 환경.. 2026. 2. 21.
PM 인턴십 종료와 다음 스텝 1년간의 인턴십이 끝났다. 대기업에서 PM으로 일해본 경험은 분명 값졌다. 경영진과 실무진 사이에서 의사결정이 이루어지는 과정, 결과를 만들어내기 위해 이어졌던 수많은 회의, 프로젝트를 앞으로 나아가게 하기 위한 설득의 시간들. 다른 곳에서는 쉽게 경험할 수 없는 배움이었다. 하지만 일을 하면 할수록 프로젝트를 직접 만들어보고 싶다는 생각이 커졌다.퇴근 후, 나도 모르게 코드 에디터를 열었고, PM 공고보다 개발자 공고를 더 오래 들여다보고 있는 나를 발견했다. 현재 직장이 주는 월급과 복지는 분명 컸다.그럼에도 마음 한켠에는 계속 무언가 빠져 있다는 느낌이 남아 있었다.‘지금 이대로 가도 나는 만족할 수 있을까?’라는 질문이 끊임없이 따라다녔다. 회사를 다니며 준비하는 방법도 있었겠지만, 결국 방향을 .. 2026. 2. 21.
IBM Introduction to Software Engineering 수강 후기 올해 목표와 공부를 시작한 이유안녕하세요.2026년의 첫 주가 어느새 지나갔습니다.올해 제 목표 중 하나는 컴퓨터과학 대학원에 입학하는 것입니다. 그동안 기술에 대한 이해가 여기저기 흩어져 있다는 느낌을 받아왔고, 공부를 한다면 단순히 소비로 끝나는 것이 아니라 기록으로 남길 수 있는 방식이면 좋겠다는 생각을 해왔습니다. 그런 이유로 현재 Coursera에서 IBM이 운영하는 Introduction to Software Engineering 강의를 듣고 있습니다.https://www.coursera.org/learn/introduction-to-software-engineering 시스템 엔지니어링 소개IBM에서 제공합니다. 소프트웨어 엔지니어링이라는 수익성 높은 분야와 그 일부가 될 수 있는 방법에 대.. 2026. 1. 11.
알고리즘이란 알고리즘알고리즘은 입력(input)을 출력(output)으로 변환하기 위한 일련의 계산절차(computational procedure)입니다. 즉, 알고리즘은 잘 정의된 계산문제(computational problem)를 해결하기 위한 도구입니다. 잘 정의 된 계산문제(well defined computational problem)잘 정의된 계산문제란 입력과 출력의 관계를 일반적인 용어를 사용해서 정의한 문제입니다. 특정한 입력값 하나를 의미하는 것이 아니라, 어떤 형태의 입력이 주어졌을 때 어떤 출력이 나와야 하는지를 정의한 것입니다. 문제의 인스턴스(instance of problem)특정한 문제에 대해 주어지는 구체적인 입력들을 문제의 인스턴스(instance of problem)라고 부릅니다. 실.. 2026. 1. 3.
책을 대하는 방식 책은 왜 읽어야 할까왜 책을 읽어야 할까요? 그리고 책은 어디에 도움이 될까요? 책은 또 어떻게 읽어야 할까요?학교에서부터 업무에 이르기까지 책을 꽤 많이 읽어왔지만, 솔직히 그것들이 제 삶에 얼마나 도움이 되었는지는 잘 모르겠습니다. 다만 한 가지 분명한 점은, 자신의 분야에서 압도적으로 성공한 사람들 대부분이 공통적으로 책을 읽었다는 사실입니다.그렇다면 책은 분명 도움이 되는 무언가일 텐데, 제가 그 효과를 체감하지 못했던 이유는 왜 읽는지, 어떻게 읽는지를 제대로 알지 못했기 때문이 아닐까 싶었습니다. 그래서 최근에는 책을 읽는 이유를 정리해보고, 그 기준으로 책을 읽어보기 시작했습니다.새로운 관점이 없으면 성장은 없다제가 생각하는 책을 읽는 이유는 새로운 관점을 얻기 위해서입니다. 저는 제가 아는.. 2026. 1. 3.
2026년을 맞이하며 안녕하세요. 2026년이 되었습니다.여러분은 지난 한 해를 어떻게 보내셨나요? 돌아보면, 제게 2025년은 꽤 다이나믹한 해였습니다. 정식으로 첫 취업을 했고, 처음으로 중국을 여행했으며 도쿄를 방문했습니다.일적으로는 주니어 PM으로서 경험할 수 있는 다양한 업무를 빠르게 접해볼 수 있었습니다. 돌이켜보면,충분히 알지 못한 상태에서도 새로운 일에 도전했던 순간들, 즉흥적으로 여행을 떠났던 선택들, 그리고 가능한 한 많은 것을 시도하려 했던 태도가 가장 기억에 남습니다. 반면에 아쉬움도 분명했습니다.불필요한 눈치를 봤던 일들, 제 의견을 쉽게 양보했던 순간들, 사랑하는 사람들에게 충분한 시간을 쓰지 못했던 것, 과소비, 업무에 필요한 지식의 깊이가 얕았던 점, 그리고 무너진 생활 패턴까지. 특히 할머니의 .. 2026. 1. 1.
백트래킹 백트래킹이란 경로를 따라 경우의 수를 탐색하되, 탐색 도중 해당 경로가 앞으로도 조건을 충족할 수 없다고 판단되면 그 경로를 즉시 가지치기를 하고 이전 상태로 되돌아가는 알고리즘입니다.백트래킹으로 문제를 해결할 때 4가지 요소를 고려해야합니다.기저조건가지치기내려가기되돌아가기기저조건이란 하나의 경우의 수가 완성되었는지를 판단하는 조건으로, 답을 출력하거나 기록하는 시점이 됩니다.가지치기란 현재 경로가 앞으로도 조건을 충족할 가능성이 있는지를 검사하는 지점이며, 가능성이 없다고 판단되몀ㄴ 해당 경로의 탐색은 즉시 중단됩니다.내려가기는 경로를 확장하기 위해 상태를 하나 더 선택하는 과정이며, 되돌아가기는 탐색이 끝난 후 상태를 원래대로 복구하는 과정입니다.백트래킹를 적용하기 위해서는 문제에서 위의 4 요소를 .. 2025. 12. 30.
반응형