GROWTH LOG STORIES

함께 만든 성장을,
기록으로 연결합니다.

AI와 함께 배우고, 직접 만들고, 서로 나눈
그로스로그 멤버들의 생생한 성장 기록을 만나보세요.

성장 기록
5기+이어진 커뮤니티
HEALTHIO
PROJECT

사진 한 장으로 시작하는 건강 루틴, Health IO

대표 이야기 읽기

ALL STORIES

성장의 순간을
한곳에서 만나보세요.

프로젝트의 시작부터 모임에서 나눈 인사이트까지,
그로스로그가 함께 만든 기록을 모았습니다.
개의 성장 기록

성장일지

[GL 2기 1회차] 백지에서 시작하지 않는다 — 퍼셉트론과 중선형회귀, 복수전공, 21개월 회고 🌱

GROWTH LOG🌱 2026. 8. 9. 03:21

안녕하세요! 그로스로그 입니다!😊 🌱

퍼셉트론을 통계로 이해한 사람, 전공 위에 전공을 얹은 사람, 21개월을 시간순으로 펼쳐놓은 사람. 2기 1회차 세 편입니다.

성장일지는 멤버들이 2주에 한 번씩 자신의 성장을 기록하는 활동이에요. 지난 기수의 성장일지를 다시 읽으면서, 꾸준히 기록을 남기셨는데 아직 소개해드리지 못한 분들의 글을 하나씩 꺼내고 있습니다.

2기 1회차, 2024년 9월입니다. 새 학기가 시작되고 2기가 막 출발한 시점이에요.

 

01

🧠 분류를 위한 도구 _ 단층 퍼셉트론

이지은 님

이지은 님 원문에 실린 이미지
이런 내용이에요
머신러닝의 가장 기본 구조인 단층 퍼셉트론을 다루는데, 접근이 특이합니다. 첫 문장이 이래요. "머신런의 기본이 되는 단층 퍼셉트론을 통계의 중선형회귀와 관련지어 이해해 보았다."
그래서 순서가 거꾸로 갑니다. 단순선형회귀 → 중선형회귀 → 다중 로지스틱 회귀 → 퍼셉트론. 통계에서 출발해 신경망에 도착합니다.
마지막에는 구글 코랩으로 직접 구현까지 했습니다.

머신러닝을 처음 배울 때 가장 막막한 게 "이게 대체 뭘 하는 건가"입니다. 뉴런이니 가중치니 활성 함수니 하는 말이 한꺼번에 쏟아지는데, 서로 어떻게 연결되는지가 안 보이거든요.

이 글은 그 문제를 이미 아는 것에 붙이는 방식으로 풉니다.

조금 더 들어가 보면

📈 회귀에서 분류로 넘어가는 지점

먼저 회귀부터 짚습니다. 글의 설명이 정확해요.

가장 계산이 쉬운 단순선형회귀는 1개의 입력 특성으로 결과를 판단하는 것이고, 중선형회귀는 복수의 입력 특성을 통해 최종 적합을 출력하는 선형회귀이다.
예를 들어 나이에 따른 혈압을 계산하는 것이 단순선형회귀라면, 나이와 몸무게를 입력으로 혈압을 추정하는 것이 중선형 회귀이다.

입력이 하나냐 여럿이냐의 차이입니다. 그리고 둘 다 연속적인 숫자를 내놓습니다. 혈압 128, 혈압 142처럼요.

그런데 실제로 필요한 답이 숫자가 아닐 때가 있습니다. "비만인가 아닌가", "스팸인가 아닌가"처럼요. 글이 이 전환을 짚습니다.

다수의 연속형 독립변수로서 수치가 아닌 범주형 결과변수를 판단하는 경우 (…) 다중 로지스틱 회귀를 사용하게 된다.

여기서 로지스틱 회귀가 등장합니다. 계산은 여전히 선형회귀처럼 하되, 마지막에 그 값을 "예/아니오"로 바꾸는 장치를 하나 붙이는 거예요.

그리고 그 장치가 바로 퍼셉트론의 핵심입니다. 글이 이렇게 설명합니다.

다중 로지스틱 회귀는 1개의 case에 여러 특성의 입력값을 가지고 있으며, 각 특성별 가중치를 합한 후 비선형 특성을 가지는 활성 함수를 사용하여 출력 여부를 결정한다.

가중치를 곱해서 더한다 — 이건 중선형회귀와 똑같습니다. 거기에 활성 함수를 씌운다 — 이게 추가된 부분이고요.

즉 퍼셉트론은 새로운 것이 아니라 선형회귀에 스위치를 하나 붙인 것입니다. 이렇게 설명하면 "신경망"이라는 이름이 주는 부담이 사라집니다.

🔌 임계값이라는 스위치

활성 함수가 하는 일을 글이 신경세포에 비유해 설명합니다.

신경세포의 원리를 모방하여 특정 임계값을 기준으로 출력이 결정되는데 (…) 𝑢의 값이 0보다 작으면 출력을 억제하고, 0보다 크면 출력을 내도록 설계된다.
바이어스(bias)로 뉴런이 활성화되는 𝝎ᵀх의 레벨을 조정한다.

바이어스에 대한 한 줄이 특히 중요합니다.

가중치만 있으면 경계선이 항상 원점을 지나야 합니다. 나이·몸무게가 둘 다 0인 지점을 반드시 통과하는 선만 그을 수 있다는 뜻이에요. 그런데 실제 데이터는 그런 자리에 있지 않죠. 바이어스는 그 선을 위아래로 옮기는 값입니다. 선형회귀식의 절편(𝜷₀)과 정확히 같은 역할이고요.

여기서도 "통계에 이미 있던 것"이 이름만 바꿔 나타납니다. 절편이 바이어스가 되고, 회귀계수가 가중치가 됩니다.

그리고 글은 활성 함수가 하나가 아니라는 것도 짚습니다.

모델의 특성에 따라 다양한 활성 함수(Step function, Sigmoid Function, ReLU, Leaky ReLU 등)를 사용한다.

Step은 임계값에서 딱 0/1로 끊고, Sigmoid는 0과 1 사이를 부드럽게 이어줍니다. 부드러운 쪽이 학습에 유리한데, 끊기는 함수는 어느 방향으로 조정해야 할지 알려주는 기울기가 없기 때문이에요.

📏 최소제곱법과 반복 학습의 차이

글에서 가장 값진 대목은 통계와 머신러닝이 같은 목표를 다른 방법으로 이룬다는 걸 짚은 부분입니다.

기대값과 출력값의 차이(잔차)를 이용한 최소제곱법을 사용하며, 잔차의 제곱합을 최소화하면서 적절한 계수를 찾아낸다.
머신런에서는 이러한 잔차를 최소화하도록 가중치를(𝜷) 조정하며 여러번의 반복학습을 통해 최적화한다.

두 문장을 나란히 놓은 게 핵심입니다. 목표는 같습니다. 잔차를 최소화하는 계수를 찾는 것이요.

방법이 다릅니다. 통계의 최소제곱법은 공식으로 한 번에 답을 냅니다. 미분해서 0이 되는 지점을 풀면 정답이 바로 나와요. 머신러닝은 조금씩 고쳐가며 여러 번 반복합니다.

왜 굳이 느린 쪽을 쓸까요. 공식으로 푸는 방법은 입력 특성이 많아지면 계산이 감당이 안 되고, 활성 함수 같은 비선형 요소가 끼면 아예 못 풉니다. 반복 학습은 느리지만 그런 제약이 없어요.

그래서 글이 R과 머신러닝의 쓰임을 이렇게 갈랐습니다.

범주 분류를 위한 로지스틱 회귀는 R등의 통계 Tool을 이용해 간편히 수행할 수 없으며, 머신런을 통해 작업하면 보다 쉽게 결과를 도출할수 있고 시각화도 용이하다.

도구를 쓰임에 따라 나눈 판단입니다. 연속형 값을 예측하는 회귀는 R이 간편하고, 분류로 넘어가면 머신러닝이 낫다는 것.

📝 원문에서는 이렇게 한계를 짚습니다

단층 퍼셉트론의 제약을 정확히 적어둔 대목이 있습니다.

입력층과 출력층으로 구성된 단층의 Feedforward 신경망 구조이므로 단층으로 구성되어 하나의 선형 경계만 학습할수 있으므로 0과 1의 두가지 종류의 출력만 가능하다.
(단, 두개의 명목형 변수를 구분하기 위한 분류에만 적용할 수 있다)

"하나의 선형 경계"가 핵심 제약입니다.

단층 퍼셉트론은 결국 데이터 사이에 직선(또는 평면) 하나를 긋습니다. 그 선의 위쪽이면 1, 아래쪽이면 0이에요. 그러니 직선 하나로 갈라지는 문제만 풀 수 있습니다.

이게 왜 중요하냐면, 직선으로 안 갈라지는 문제가 훨씬 많기 때문입니다. 데이터가 도넛 모양으로 섞여 있거나, 두 무리가 서로 얽혀 있으면 선 하나로는 안 됩니다. 신경망에 층을 여러 개 쌓는 이유가 여기 있어요. 층이 늘어나면 휘어진 경계를 만들 수 있거든요.

"단층"이라는 이름 안에 이미 한계가 들어 있습니다. 그걸 첫 글에서 짚어둔 게 좋았습니다. 다음에 다층으로 넘어갈 때 "왜 층을 쌓는가"에 대한 답이 이미 준비돼 있으니까요.

그리고 통계 쪽 전제도 함께 적어뒀습니다.

** 잔차를 이용한 분석에서는 오차의 독립성, 등분산성, 정규분포에 대한 가정이 우선함

선형회귀가 성립하려면 조건이 필요하다는 뜻입니다. 관측값들이 서로 영향을 주지 않아야 하고(독립성), 오차의 흩어진 정도가 구간마다 비슷해야 하고(등분산성), 오차가 정규분포를 따라야 한다는 것.

이 조건이 깨지면 계산은 되지만 결과를 믿을 수 없습니다. 통계에서는 이걸 먼저 검사하고 시작해요.

머신러닝은 이 검사를 잘 하지 않습니다. 어차피 반복 학습으로 답을 찾으니 공식이 성립할 조건이 필요 없거든요. 편해진 만큼 "이 결과가 믿을 만한가"를 물을 근거도 약해집니다. 통계를 먼저 배운 사람이 머신러닝을 볼 때 이런 차이가 보입니다.

그리고 글은 구글 코랩으로 실제 구현까지 갑니다. 개념을 정리하고 끝내지 않고 돌려본 겁니다. 개념 → 통계적 근거 → 코드로 이어지는 순서라, 어느 층위에서 막히든 돌아갈 자리가 있습니다.

큐레이터 노트

모르는 것을 아는 것의 언어로 번역한 글이라 뽑았습니다.

머신러닝 입문 글은 대개 신경망 그림에서 시작합니다. 동그라미와 화살표가 그려진 그 그림이요. 그런데 그 그림은 이미 아는 사람에게만 설명이 됩니다. 처음 보는 사람에게는 그냥 그림이에요.

이 글은 통계에서 출발합니다. 단순선형회귀 → 중선형회귀 → 로지스틱 회귀 → 퍼셉트론. 각 단계가 앞 단계에 하나씩만 더한 형태라 따라갈 수 있습니다.

그리고 이 방식은 글쓴이가 통계를 알고 있었기 때문에 가능했습니다. 자기가 이미 가진 것에서 다리를 놓은 거예요. 남이 만든 설명 순서를 따라가는 대신, 자기 지식 지도에 맞는 경로를 직접 냈습니다.

새 분야를 배울 때 쓸 수 있는 방법이라고 생각합니다. 내가 이미 아는 것 중에 구조가 닮은 것을 찾아 거기서 출발하는 것이요.

원문 읽으러 가기  ↗vapiano.tistory.com/9
 

02

📊 [Growth Log] 2기 1차

권준형 님

권준형 님 원문에 실린 이미지
이런 내용이에요
새 학기가 시작되면서 생긴 큰 변화를 알리는 글입니다. 통계데이터과학 복수전공을 시작했어요.
왜 통계인지에 대한 판단이 적혀 있습니다. 머신러닝·데이터마이닝 때문에 통계학이 컴퓨터공학 분야에서 유망하고, 1년 반 동안 배운 컴퓨터과학 지식과 시너지를 낼 수 있다고 봤다는 것.
그리고 컴파일러구성 출석수업에서 "반은 이해하고 반은 전혀 이해하지 못했다"는 고백, 파이썬 독학이 계획보다 늦다는 자기 점검이 이어집니다.

1기 큐레이션에서도 이분의 학기 후기를 소개해드렸습니다. 그때는 여섯 과목을 별점과 함께 정리한 글이었어요.

이번엔 방향을 정하는 글입니다.

조금 더 들어가 보면

🔗 통계와 컴퓨터과학이 만나는 자리

복수전공을 고른 이유가 한 문단에 압축돼 있습니다.

최근의 통계학은 머신러닝, 데이터마이닝 등으로 인해 컴퓨터공학 분야에서 매우 유망하다고 생각되며, 동시에 내가 지난 1년반 동안 배웠던 컴퓨터과학과의 지식들을 활용하여 큰 시너지를 낼 수 있다고 판단된다.

"시너지"라는 단어를 정확히 쓰고 있습니다. 두 개를 따로 배우는 게 아니라 붙였을 때 더 커진다는 뜻이니까요.

실제로 그렇습니다. 이 회차의 첫 번째 글이 그걸 보여주고 있고요. 이지은 님이 통계 지식으로 퍼셉트론을 이해한 것이 정확히 그 시너지입니다.

두 분야가 만나는 자리를 조금 더 풀어보면 이렇습니다.

통계는 "왜 그런가"를 다룹니다. 이 결과가 우연일 확률은 얼마인지, 이 모형이 데이터를 얼마나 설명하는지, 표본에서 얻은 결론을 전체로 확장해도 되는지를 따집니다.

컴퓨터과학은 "어떻게 계산하는가"를 다룹니다. 데이터가 수백만 건일 때 어떻게 저장하고, 어떤 알고리즘이 빠르고, 메모리에 안 들어가면 어떻게 나눠 처리할지를요.

데이터를 다루는 일에는 둘 다 필요합니다. 통계만 알면 큰 데이터 앞에서 멈추고, 계산만 알면 나온 숫자가 무슨 뜻인지 모릅니다.

수강 과목을 보면 그 접점이 보입니다. 통계로세상읽기·데이터과학개론·표본조사론·여론조사의이해 네 과목인데, 표본조사론은 특히 그렇습니다. "어떻게 뽑아야 전체를 대표하는가"를 다루는데, 데이터를 다루는 사람이 가장 자주 틀리는 지점이거든요. 수집 방법이 틀리면 그 뒤 계산이 아무리 정교해도 결론이 틀립니다.

🎓 다시 1학년으로 돌아간다는 것

복수전공 시작을 이렇게 적었습니다.

이제 다시 1학년1학기로 돌아간 느낌이라 기분이 이상하기는 한데, 앞으로 3학기(혹은 그 이상)동안 초심으로 돌아가 열심히 배워보고자 한다.

4학년 2학기에 다시 1학년이 되는 선택입니다. 졸업까지 3학기가 더 늘어난다는 뜻이고요.

이게 쉬운 결정이 아닙니다. 일하면서 공부하는 사람에게 3학기는 긴 시간이에요. 그런데 이 글에는 그걸 손해로 보는 문장이 없습니다. "기분이 이상하다"까지만 적고 넘어갑니다.

같은 회차에 실린 장진명 님의 글에도 비슷한 판단이 나옵니다. "늦게라도 전공 공부"요. 두 분 다 시간이 더 걸리는 쪽을 골랐습니다.

📝 원문에서는 이렇게 적습니다

컴파일러구성 출석수업에 대한 대목이 솔직합니다.

사실 컴파일러에 대해서는 이미 지난 학기 동안 꽤 여러번 마주치고 배웠던 개념이라 낯설지는 않지만 아예 하나의 교과목으로 심도 있게 배우다보니 그저 "코드를 해석"하는 수준의 간단한 역할을 하는 것이 아니라는 느낌이 확 든다.

"낯설지는 않은데 만만하지도 않다"는 상태입니다. 이름은 들어봤고 대충 뭘 하는지도 아는데, 정작 들여다보니 훨씬 크더라는 것.

컴파일러가 실제로 그렇습니다. "소스 코드를 기계어로 바꾼다"는 한 줄로 요약되지만, 그 안에는 문자를 토큰으로 쪼개고, 문법 구조를 나무로 만들고, 의미를 검사하고, 중간 표현으로 바꾸고, 최적화하고, 최종 코드를 뽑는 여러 단계가 들어 있습니다. 각 단계가 그 자체로 한 학기 분량이고요.

그리고 이어지는 자기 진단이 정직합니다.

출석수업 당시에는 교수님의 설명을 들으면서도 무슨 내용인지 반은 이해하고 반은 전혀 이해하지 못했던 것 같다.

"반은 이해하고 반은 못 했다"는 표현이 좋습니다. 다 이해한 척하지도, 하나도 모르겠다고 하지도 않았어요. 어느 정도인지를 정확히 적으면 다음에 무엇을 채워야 할지도 정해집니다.

파이썬 독학 진도에 대해서도 마찬가지입니다.

여름방학이 가기 전에 6시간짜리 유튜브 무료 강의를 완료하고자 다짐했었는데 이게 정말 회사를 다니며 학업을 병행하다보니 마음처럼 되지 않는다. 이제 겨우 반 정도를 수강하였다. (…) 이 페이스로 가면 이번 년도 말에나 겨우 기초과목 영상을 다 볼 수 있을것 같다.

계획과 실제의 차이를 숫자로 적고, 그 속도로 가면 언제 끝나는지까지 계산했습니다. 그리고 그 결론이 "그러니 포기하자"가 아니라 "느린 발걸음이나마 한걸음씩"입니다.

🐍 파이썬 예제에 남은 것

글 끝에 독학 중 작성한 코드가 붙어 있는데, 계좌 입출금을 다루는 기초 예제입니다.

def withdraw(balance, money):   # 출금
    if balance >= money:        # 잔액이 출금보다 많으면
        print("출금이 완료되었습니다. 잔액은 {0} 원입니다.".format(balance + money))
        return balance - money
    else:
        print("출금이 완료되지 않았습니다. 잔액은 {0} 원입니다.".format(balance + money))
        return balance

출력 문구에 balance + money가 들어가 있는데, 출금이니 빼야 맞습니다. returnbalance - money로 제대로 돼 있고요. 계산은 맞는데 화면에 보여주는 값만 틀린 상태입니다.

이런 종류의 실수가 흥미로운 이유가 있습니다. 프로그램은 정상 동작합니다. 잔액은 정확히 줄어들고 다음 계산도 맞아요. 에러도 안 납니다. 오직 사용자에게 보이는 숫자만 틀립니다.

실무에서 가장 늦게 발견되는 버그가 이런 종류입니다. 로직은 맞고 표시만 틀리면 테스트도 통과하고 로그도 깨끗하거든요. 사용자가 "숫자가 이상한데요"라고 말해줘야 압니다.

처음 배우는 단계의 코드를 그대로 올려둔 덕분에 볼 수 있는 대목입니다. 다듬어서 올렸다면 남지 않았을 기록이에요.

큐레이터 노트

이 글을 고른 이유는 자기 상태를 정확한 해상도로 적었기 때문입니다.

성장일지에서 가장 쓰기 어려운 게 잘 안 되는 상황입니다. 진도가 밀렸고, 수업은 절반만 이해했고, 계획은 어긋났어요. 이걸 적으려면 "열심히 하겠습니다"로 뭉개는 게 편합니다.

이 글은 뭉개지 않습니다. 반은 이해했고, 절반쯤 들었고, 연말에나 끝날 것 같다고 적습니다. 그리고 그 위에서 다음 계획을 세웁니다. 정확한 현재 위치를 알아야 다음 걸음을 정할 수 있으니까요.

마지막 문단도 좋았습니다. 신입 회원을 환영하고 기존 회원에게 인사를 건네는 문장으로 끝납니다. 자기 기록에 다른 사람 자리를 남겨두는 사람의 글입니다.

원문 읽으러 가기  ↗velog.io/@wnsgudvx29/Growth-Log-2%EA%B8%B0-1%EC%B0%A8
 

03

🗂️ 21개월 되돌아 보기

장진명 님

이런 내용이에요
개발을 시작한 지 21개월이 된 시점에 지금까지를 시간순으로 전부 펼쳐놓은 글입니다.
개발 학원 8개월 → 취업 준비 5개월 → 주니어 개발자 8개월. 각 구간마다 무엇을 했고, 무엇이 부족했고, 무엇을 보완해야 하는지를 화살표(->)로 적어뒀습니다.
그리고 목적이 앞에 분명히 적혀 있어요. "앞으로 어떤 학습과 경험이 더 필요한지 '제대로' 정리해보자."

회고 글인데 감상이 거의 없습니다. 대신 구간마다 결론이 붙어 있습니다.

조금 더 들어가 보면

🧭 두 번의 팀 프로젝트에서 갈린 것

학원 시절 이야기에 이 글에서 가장 실용적인 대목이 있습니다. 팀 프로젝트를 두 번 했는데, 첫 번째는 실패했어요.

완전 실패로 끝난 프로젝트에서 느낀 점
1. 무엇을 해야할지 명확하게 알아야 함 -> 설계에 영향이 큼
2. 설계를 제대로 하지 않으면 일이 굉장히 힘들어짐
3. 백엔드, 프론트 상관없이 다 알기는 알아야 함
4. 프로젝트 기간에 맞는 현실적인 분량 산정 필수

그리고 두 번째 프로젝트에서 팀장을 맡아 설계에 시간을 쏟습니다. 그때 세운 기준이 구체적입니다.

1. 사이트가 운영되는데 반드시 필요한 기능인지
2. 테이블간 의존관계가 너무 복잡하지 않게
3. 한 사람이 일주일 동안 하나의 화면에 있는 기능을 완성할 정도의 분량

세 번째 항목이 특히 실전적입니다. 분량을 "한 사람 × 일주일 × 화면 하나"로 못 박은 것이요.

프로젝트가 무너지는 가장 흔한 이유가 분량 산정 실패입니다. 그런데 "적당히 나누자"로는 매번 실패해요. 기준이 없으니까요. 이렇게 단위를 정해두면 기능 목록을 보고 "이건 3주짜리네"가 바로 나옵니다. 그러면 기간에 안 맞는 기능을 처음부터 뺄 수 있고요.

결과도 적혀 있습니다.

설계에 시간을 많이 썼다보니 구현 자체는 그렇게 오래걸리지 않았고 완벽하게 구현하지는 못했지만, 첫 번째 프로젝트에 비해 훨씬 완성도가 높았다.
그리고 이때 프론트엔드, 백엔드, API 등에 대한 명확한 이해가 잡혔다

설계에 쓴 시간이 구현 시간을 줄였다는 관찰입니다. 그리고 그 과정에서 개념 이해까지 따라왔고요.

📮 400곳에 지원하고 알게 된 것

취업 준비 구간의 기록이 담백합니다.

그 사이에 400여 곳의 회사에 지원했다
역시 개발 학원 6개월 다녔다고 취업이 잘 되진 않았다😢
어떠한 회사에서도 연락이 오지 않다가 정보처리기사 자격증을 취득하자마자 그래도 몇몇 회사에서 면접 연락이 오기 시작했다.

400곳과 자격증 하나. 이 두 숫자가 나란히 있는 게 이 글의 힘입니다.

여기서 끌어낸 결론이 네 줄인데, 두 번째가 핵심입니다.

- 개발자도 전공을 했어야 취업에 유리함
- 전공을 하지 않았다면 열심히 공부했던 것을 증명이라도 해야 함
- 전반적인 IT 지식을 타인과 수월하게 나눌 수 있어야 함
- 특장점이 필요함

"증명"이라는 단어를 골랐습니다. 실력이 없어서가 아니라, 실력을 확인할 방법이 없어서 서류에서 걸린다는 진단이에요. 자격증이 실력을 크게 늘려주진 않지만 확인 가능한 표시가 되니까 연락이 오기 시작한 겁니다.

그래서 보완 목록에 이렇게 적습니다.

- 나를 증명할 자격증 및 기록 필요
- 늦게라도 전공 공부

"기록"이 자격증과 나란히 놓여 있습니다. 그리고 이 글 자체가 그 기록이고요.

🔧 유지보수에서 배운 것

주니어 개발자 구간에는 여러 프로젝트가 나오는데, 물류 시스템 유지보수 이야기가 특히 실용적입니다.

업무 프로세스가 복잡하다 보니 섣불리 코드를 건드릴 엄두가 나지 않았다
이때 생각해낸 방법이 배치를 보면서 업무를 익히기였다
자동화가 많이 되어 있는 시스템이다 보니 배치 코드를 확인하면서 코드에 업무용어를 대입을 해보니 감이 그래도 빨리 잡혔다

배치 코드로 업무를 익힌다는 접근이 영리합니다.

배치는 정해진 시간에 자동으로 도는 프로그램입니다. 매일 밤 정산을 돌리거나, 매주 재고를 집계하는 것들이요. 업무의 핵심 흐름이 거기 다 들어 있습니다. 사람이 화면에서 하는 일은 예외 처리가 섞여 복잡한데, 배치는 "무엇을 어떤 순서로 처리하는가"만 남아 있거든요.

낯선 도메인에 들어갔을 때 쓸 수 있는 방법입니다. 화면부터 보면 기능이 수십 개라 길을 잃지만, 정기적으로 도는 작업부터 보면 뼈대가 보입니다.

그리고 사이트 유지보수 이야기에는 이런 문장이 있습니다.

고객에게서 안된다고 요청이 오면 참 난감하다
되던게 안되는데는 너무나 많은 이유가 있기 때문이다

한 줄인데 유지보수의 성격을 정확히 담았습니다. 새로 만들 때는 원인이 내 코드 안에 있지만, 되던 게 안 될 때는 코드·데이터·서버·네트워크·브라우저 어디든 원인이 될 수 있어요. 그래서 이분은 리눅스를 공부해 자격증까지 땁니다.

🧩 PHP를 자바로 옮기며 얻은 것

프로젝트 목록 중 첫 번째가 특히 눈에 남습니다.

PHP로 작성된 프로젝트를 자바로 컨버팅 하는 프로젝트가 있었다
PHP는 완전 생소한 언어라 애를 많이 먹었다
언어를 알기는 어려우니 기능 위주로 컨버팅을 하였다

모르는 언어를 다 배우고 시작하지 않았습니다. 코드가 무엇을 하는지만 파악해서 옮긴 거예요.

이게 현실적인 판단입니다. PHP를 제대로 배우려면 몇 달이 걸리는데, 그 프로젝트가 끝나면 다시 쓸 일이 없을 수도 있으니까요. 필요한 만큼만 읽는 것도 기술입니다.

그리고 그 과정에서 얻은 게 언어가 아니라 다른 것이었습니다.

인증, 토큰, 세션 등의 개념을 위주로 개발하는 부분이 있었는데 확실히 이때 웹에 대한 이해도가 많이 늘었다
또한, 클라이언트와 서버 둘 중 어느 곳에서 처리해야 하는지에 대한 기준도 조금 더 명확해졌다

언어를 바꿔 옮기면 언어에 안 딸린 것만 남습니다. 인증이 어떻게 도는지, 세션을 어디에 두는지, 어느 쪽에서 판단해야 하는지 같은 것들이요. 문법은 안 따라오고 구조만 따라옵니다.

같은 기능을 다른 언어로 다시 만들어보는 게 왜 좋은 학습인지가 여기 있습니다. 두 번째 언어를 배우는 게 아니라, 언어와 상관없는 층을 보게 되는 것이죠.

큐레이터 노트

회고를 계획으로 바꾼 글이라 뽑았습니다.

회고 글은 대개 감상으로 끝납니다. 힘들었고, 배웠고, 성장했다는 식으로요. 이 글에는 그런 문장이 거의 없습니다. 대신 구간마다 -> 화살표가 붙어 있어요. "자바, 스프링 보완필요", "앞으로 좋은 설계자가 되어야 함", "JS를 따로 계속 공부해야 하는지 고민".

지나온 것을 적는 게 목적이 아니라, 다음에 뭘 할지 정하는 게 목적입니다. 첫 문장에 그렇게 적혀 있고요. "앞으로 어떤 학습과 경험이 더 필요한지 '제대로' 정리해보자."

그리고 21개월이라는 시점이 좋았습니다. 1년은 짧아서 판단할 게 없고, 3년쯤 되면 초기를 잊습니다. 아직 기억나면서 패턴은 보이기 시작하는 구간이에요.

마지막에 다음 성장일지를 무엇으로 채울지 고민하는 대목으로 끝납니다. 개인 프로젝트를 보완하며 정리할지, 강의를 골라 정리할지요. 회고가 다음 회차의 목차를 만들고 있습니다.

원문 읽으러 가기  ↗velog.io/@code-mason/21%EA%B0%9C%EC%9B%94-%EB%90%98%EB%8F%…

💡 세 편을 겹쳐 읽으며

세 글의 형태가 다릅니다. 하나는 머신러닝 개념 정리, 하나는 학기 시작 보고, 하나는 21개월 회고예요.

그런데 세 분이 같은 방식으로 다음을 정하고 있습니다. 가진 것에서 출발합니다.

이지은 님은 퍼셉트론을 백지에서 배우지 않았습니다. 통계의 중선형회귀를 이미 알고 있었고, 거기에 활성 함수 하나를 얹는 방식으로 이해했어요. 새 분야를 새 언어로 배운 게 아니라 아는 언어로 번역했습니다.

권준형 님은 통계를 새 전공으로 고르면서 "컴퓨터과학 1년 반과 시너지"를 근거로 댔습니다. 유망해서가 아니라 자기가 가진 것과 붙어서요.

장진명 님은 다음 학습 계획을 세우기 위해 21개월을 먼저 펼쳐놨습니다. 무엇이 부족한지는 지나온 것을 봐야 알 수 있으니까요.

세 사람 다 "지금 뭘 배울까"를 백지에서 묻지 않았습니다. 이미 가진 것을 먼저 확인하고, 거기서 이어질 것을 골랐어요.

이게 왜 중요한가 하면, 배울 것을 고르는 일이 배우는 일만큼 어렵기 때문입니다. 개발 분야는 배울 게 무한합니다. 목록만 보고 고르면 유행을 따라가게 되고, 유행은 계속 바뀌니 매번 처음부터 시작하게 돼요.

가진 것에서 출발하면 다릅니다. 이미 아는 것이 이해를 도와주니 빨리 배우고, 붙는 자리가 있으니 배운 게 흩어지지 않습니다. 이지은 님이 통계 덕분에 퍼셉트론을 빨리 이해한 것처럼요.

그리고 세 글 다 자기 위치를 정확히 적었다는 공통점이 있습니다. "단층은 선형 경계 하나만", "반은 이해하고 반은 못 했다", "이 당시 이해하지 못한 부분도 많이 있었음". 어디까지 왔는지를 정확히 알아야 다음 걸음이 정해지니까요.

이번 회차에서 가져갈 것

1. 새 분야를 아는 분야의 언어로 번역해보기.

이지은 님은 퍼셉트론을 회귀로 옮겨 이해했습니다. 낯선 개념이 안 잡힐 때, 내가 아는 것 중 구조가 닮은 것을 찾아보면 길이 생깁니다. 가중치는 회귀계수고 바이어스는 절편인 것처럼, 이름만 다른 경우가 생각보다 많습니다.

2. 왜 이걸 배우는지 한 줄로 적기.

권준형 님은 복수전공을 고르며 "기존 전공과 시너지"라는 근거를 댔습니다. 지금 공부하는 것이 내가 이미 가진 무엇과 붙는지 한 줄로 못 쓰겠다면, 배우고 나서 흩어질 가능성이 높습니다.

3. 분량 산정에 단위 정하기.

장진명 님의 "한 사람이 일주일 동안 화면 하나의 기능을 완성할 분량"이 좋은 예입니다. 기준 없이 나누면 매번 어긋나는데, 단위를 정해두면 기능 목록만 보고 기간이 나옵니다.

4. 낯선 도메인은 정기 작업부터 보기.

화면은 기능이 많아 길을 잃지만, 배치처럼 정해진 시간에 도는 작업에는 업무의 뼈대만 남아 있습니다. 새 프로젝트에 투입됐을 때 써볼 만한 방법입니다.

5. 회고에 화살표 붙이기.

장진명 님의 글에는 구간마다 -> 무엇이 필요함이 붙어 있습니다. 지나온 것만 적으면 감상이고, 다음에 할 것을 붙이면 계획이 됩니다.


2기는 2024년 9월에 시작했습니다. 1기를 함께한 분들이 이어서 남았고, 새로 합류한 분들이 더해진 기수예요.

그래서인지 1회차 글에 "이어서"라는 감각이 자주 보입니다. 지난 학기가 있고 그 위에 이번 학기가 있고, 21개월이 있고 그 위에 다음이 있습니다. 처음 시작하는 사람의 글과는 결이 달라요.

좋은 글 남겨주신 이지은 님, 권준형 님, 장진명 님께 감사드립니다. 그리고 2기를 함께 채워주신 모든 멤버분들께도요! 😊

다음 큐레이션으로 다시 찾아오겠습니다! 🌱

- 에디터 · 성장일지 큐레이터 -


※ 본 큐레이션은 각 저자가 공개한 글을 소개하는 것이며, 모든 원문의 저작권은 저자에게 있습니다. 저자 본인의 요청이 있을 경우 즉시 수정 또는 삭제합니다.

WRITE YOUR GROWTH

오늘의 배움을
내일의 성장으로.

기록은 나를 돌아보게 하고, 공유는 우리를 연결합니다.
당신의 다음 성장 이야기도 그로스로그에서 시작해보세요.

커뮤니티 둘러보기