• [커널아카데미] 백엔드 부트캠프 12기 4주차 - 지난 한 달 되돌아 보기

    2025. 5. 16.

    by. 고구마달랭이

    부트캠프 한 달째

    몰랐는데 벌써 한 달차다. 벌써 학원이 적응돼서 그냥 저냥 다니다가 금요일 퇴실 공지 때 매니저님이 벌써 한 달이 됐다고 하셔서 알았다. 6개월 과정 중 벌써 1단계가 끝났다니.. 갑자기 정신이 번쩍!!! 들...지는 않았고 조금 들었다. 이대로는 안되겠다 싶었다.

     

    한 달차의 난 뭘했나

     

    늘 해왔던 것 처럼 자바의 정석 온라인 강의 대신 교재를 읽으며 노션에 정리했다.
    원래는 개인 학습 몰입 시간에만 정리를 했었는데 6-7장에서 내 진도와 수업 진도가 점점 차이가 벌어지기 시작하길래
    수업 시간에도 내 진도에 맞춰 나갔다. 그런데 어느 순간 보니 내가 이상한 짓을 하고 있었다.

     

    책을 보고, 이해하고, 내 언어에 맞춰 정리하는 게 아니라 마치 복사 붙여넣기 처럼 노션에 적고 있었고
    그 정리한 만큼을 내 진도라고 단단히 착각하고 있었다. 그건 개념 정리가 아니라 글자 옮기기와 다름 없었다. 내 자신에게 최적화된 게 아닌 마치 남 보여주기식 정리 처럼 변질되고 있었다.

     

    연습문제 20번

    package com.devcamp.practice;
    
    abstract class Shape {
        Point p;
    
        Shape(){
            this(new Point(0, 0));
        }
    
        Shape(Point p) {
            this.p = p;
        }
    
    
        abstract double clacArea();
    
        Point getPosition(){
            return p;
        }
    
        void setPosition(Point p){
            this.p = p;
        }
    }
    
    class Circle extends Shape {
        double r;
    
        public Circle(double r) {
            this.r = r;
        }
    
        double clacArea() {
            return Math.PI * r * r;
        }
    }
    
    class Rectangle extends Shape {
        double width = 0;
        double height = 0;
    
        public Rectangle(double w, double h) {
            this.width = w;
            this.height = h;
        }
    
        double clacArea(){
            isSquare(width, height);
    
            return width * height;
        }
    
        boolean isSquare(double w, double h){
            return w == h;
        }
    }
    
    
    class Point {
        int x;
        int y;
    
        Point(){
            this(0, 0);
        }
    
        Point(int x, int y){
            this.x = x;
            this.y = y;
        }
    
        public String toString(){
            return "[" + x + "," + y + "]";
        }
    }
    
    
    public class Ex20 {
    
        static double sumArea(Shape[] arr) {
            double sum = 0;
    
            for (Shape shape : arr) {
                sum += shape.clacArea();
            }
    
            return sum;
        }
    
    
        public static void main(String[] args) {
            Shape[] arr = {new Circle(5.0), new Rectangle(3, 4), new Circle(1)};
            System.out.println("면접의 합 : " + sumArea(arr));
        }
    }

    여전히 난 static, public static, void 개념을 다 섞어서 쓰고 있고, 연습 문제 처럼 빈칸 채우기 정도는 할 수 있지만 혼자서 처음 부터 짜라고 하면 못짠다. 코드를 작성하는 게 아닌, 외운 걸 꺼내서 끼워 맞추는 수준이다.

     


    정리는 개념을 내 것으로 만들기 위한 과정이다. 옮겨 적기만 했다고 바로 내 지식이 되는게 아니다. 도라에몽의 암기빵도 화장실 갔다오면 사라진다. 정말 나의 지식으로 만들고 싶다면 이해한 내용을 스스로 설명할 수 있을 때 까지 봐야한다. '왜' 써야하는지에 집중해야 한다. 이 개념은 '왜' 나왔으며, '왜' 사용해야 하고, '왜' 더 나은 건지 끝없이 파고 들어야 한다.

     

    피어 프로그램

    피어 프로그램은 한 달 동안 주에 한 번, 총 네 명의 피어를 만나는 프로그램이다. 수강생이 60명 정도가 되다 보니 아직 얼굴도 이름도 모르는 분들이 여럿인데 이 프로그램이 인터페이스 역할을 해준다.(?) 이번이 마지막 피어 시간 이었다. 평소 궁금했던 분과 피어가 됐는데 역시 엄청 멋진 분이셨다.

     

    피어님께 공부 꿀팁좀 알려달라고 했더니 수업 시간에 강사님이 거의 중요한 부분만 말씀하시니 그 부분을 책에 표시하고, 그걸 정리한다고 하셨다. 난 왜 그 생각을 못했을까? 당장 이해가 안되더라도 표시해놓고 다음에 보면 되는 거였다. 피어님 꿀팁 감사합니다(_ _)

     

    링크드인 맞팔도 하고 다음주 밥약도 했다. 그동안 피어프로그램에 대한 의문이 쪼금...있었는데 그래도 역시. 없어선 안될 좋은 프로그램이었다.

     

    그룹 스터디

    사실 나를 가장 돌아보게 만든 가장 큰 이유 중 하나는 그룹스터디다. 지난주에 다른 스터디원님이 추상클래스와 인터페이스에 대해 발표를 하셨는데, 이해가 너무 안돼서 다시 한 번 더 내가 발표해보기로 했다.

     

    (발표 내용 링크) 다형성 & 추상클래스 & 인터페이스

     

    발표 주제를 정하게 되면, 아무래도 남들을 이해시키고 싶은 마음에 더 주제를 파고들게 된다. 그래서 내가 먼저 이해하려고 노력했고, 이해가 됐다. 된 줄 알았다.

     

    가장 어려웠던 부분이 추상클래스와 인터페이스가 다형성과 만났을 때 둘이 어떤 차이를 갖고 어떤 상황에서 다르게 작동하는가였다. 문법적으로는 구분이 되는데 그래서 어떤 방식으로 동작한다는 건지가 잘 이해가 되지 않아서 계속 읽고 코드를 비교해보며 준비했다.

     

    수요일, 그룹스터디 시간의 내 모습은 그냥 외운 걸 줄줄 읽으려다 실패한 모습 뿐이었다. 사람들은 이해하지 못한 표정이었고 난 당황했다.
    집에와서 어떤게 문제였을지 고민해봤다. 난 개념을 정확하게 내 것으로 만든 게 아니었고 '이 쯤 했으면 이해 된거겠지'하고 자만한 것이었다. 얄팍하게 쌓은 지식은 무너지는 데에 한순간이었다.

     

    GPT는 도구다


    난 GPT를 멀리했었다. 스스로 생각하는 힘이 약화될 것 같았기 때문이다. 그런데 GPT를 몇 번 써보고 나니 순식간에 내가 GPT에 의존하게 됐다. 이전엔 신뢰할 수 있는 사이트에서 정보를 수집했었는데 이젠 GPT한테 한 문장만 치면 알아서 답을 내온다. 그 답에 대한 출처는 모른다. 다시 물어보고, 내가 확인해보기 전 까진.

     

    '참고만 해야지'라고 생각하면서도 '정답'을 물어보는 나를 여러번 발견했다. GPT가 써주는 예제들, 개념 정리들을 그대로 노션에 적어놓고 내 지식이라고 단단히 착각했었다.

     

    그러다 그룹 스터디 때 다른 분의 발표 중 질문으로 String Pool과 관련된 얘기가 잠깐 나왔었다. 이후에 따로 몇 분께서 답을 찾아 슬랙에 보내주셨는데, 내 첫 발표 주제(발표 내용 링크) String은 왜 대문자일까와 겹치기도 하고 정든(?) 분야라 더 확실히 하고싶어서 정말 오랜만에 GPT 없이 오로지 공식 문서만을 보고 정보를 찾아봤다. 테크블로그는 출처가 남겨진 블로그를 위주로 정보를 얻었다.

     

    간단한 정보를 찾는 데도 무려 세 시간이나 걸렸다. 내가 궁금한 내용을 다룬 블로그는 많았지만 서로 다른 말을 하고 있었고, 공식 문서도 쉽게 찾을 수 없었다. 솔직히 내가 찾아낸 정보도 완전히 정확한지는 확신할 수 없다.

     

    그런데 이 과정에서 깨달은 것이 있다. GPT는 결국 이런 웹상의 정보들을 크롤링해 답변하는 시스템인데 출처가 불분명하고 정확하지 않은 내용들이 넘쳐난다면 GPT 역시 그 틀린 정보를 기반으로 답변할 수밖에 없을 것이다. 내가 직접 정보를 찾으며 느낀 혼란이 GPT의 답변 속에도 숨어있을 거란 생각에 심각성을 느꼈다. 역시 무조건적으로 GPT에 의존하기보다는 스스로 검증하는 습관을 길러야겠다.

     

    앞으로의 나는

    • 수업 시간엔 수업 듣기
    • 노션 정리에 시간 쓰지 않기
    • 정리 대신 개념 1-2개만 잡고 관련 예제 코드를 직접 쳐보며 연결해서 익히기
    • 공부는 넓이가 아닌 깊이라는 것을 잊지 않기

    다시 돌아가야겠다. 처음 부트캠프에 합류하기로 마음 먹었을 때의 마음으로.
    우선 수업을 들어야겠다. 자바 진도는 이미 끝나기 직전이긴 하지만 마지막 몇 챕터만이라도 수업 시간엔 수업을 들을 것이다. 내가 망각하고 있었다. 남들과 다른 나만의 방법으로 성공할 거였다면 애초에 집에서 했겠지. 짜여진 커리큘럼에 맞춰 굴려지고 싶어서 와놓곤 내 멋대로 하고 있었다.

     

    이젠 방향을 바로 잡아야 할 때가 왔다... 눈 감았다 뜨면 수료다.
    이제 어영부영 시간 따라 흘러가지 않고 정말 이 시간들을 내 것으로 만들어야 한다.

     

    복붙식 정리 그만 하고
    내가 부족한 것, 애매하게 아는 것, 확실하게 아는 것을 구분하고
    운동도 다시 시작하고
    도시락도 열심히 싸다니고
    공부도 잘 하고
    나중에 돌아봤을 때 후회 없는 시간을 만들어야겠다.🔥🔥🔥

     

     

    한 달 뒤의 나는 더 성장해있기를

     

    댓글