4 분 소요

백엔드 부트캠프-제로베이스 백엔드 스쿨 - 2개월차

5/9 부터 시작한 백엔드 부트캠프 - 제로베이스 백엔드 스쿨 2기 2개월차입니다.

시간이 어떻게 지나가고 있는지 모르겠습니다..ㅋㅋ
내 머리는 이해하지 못한 알고리즘에 멈춰있는데, 시간은 멈춰주질 않더라구요.. 하하

2개월차 후기입니다.


1. Java를 기초부터 배우면서 느낀 점

Java를 배우면 배울수록 양가 감정이 듭니다. (응?)

  • 유연하지 않고 딱딱함.

제가 느끼는 Java언어는, 문법이 굉장히 타이트하며 특히 자료형에 대해서는 타의 추종을 불허하는 까칠함을 가지고 있습니다. 같은 숫자 값이더라도 String(문자열) 데이터와 int(정수형)은 더할 수 없습니다.

1
(자료형을 맞추라는 IDE의 경고. IDE말을 잘 듣지 않으면 무시무시한 오류를 띄우기 때문에 말을 잘 들어야 함)

매번 자료형을 맞춰서 데이터를 처리하는 것이 여간 귀찮고 힘든 일이 아닙니다. 이러한 특성이 코딩테스트를 할 때 Java를 선택한 것을 특히 슬프게 하는 것 같습니다. 버려버리고 싶습니다.

그러나, 일반적인 코딩작업을 할 때는, 이렇게 명확한 것이 심적인 안도감을 줍니다. 특히 Java는 컴파일 언어기 때문에 서비스가 배포되기 전에 컴파일 과정에서 IDE가 한번, JVM이 또 한번 오류를 점검해줍니다.

이러한 특성들 때문에 Java가 싫은데 좋습니다. (응?)

-

제로베이스에서는 Java에 대한 기본적인 문법을 예시와 함께 설명해주어 이해에 도움이 되었습니다. 그리고 강사님이 현업에 있기 때문에 현업에서 활용할 수 있는 팁도 얻을 수 있었습니다.
(예를 들어, String 객체를 비교할 땐 equals()메서드를 사용하는데, 현업에서는 이 때 NullPointExecption이 정말 많이 나는 부분이기 때문에 비교할 기준이 되는 String을 매개변수에 넣지 말고 앞에 놓을 것.)

지난달에는 Java의 기초적인 문법에 대해 배웠다면,
이번달에는 Java에서 유용하게 활용되는 Object, String, Math, Date와 Calendar, 그리고 Collection 클래스에 대해 배웠고, DataBase에 자료를 관리하는 작업을 하고 있습니다. Java는 자료를 다루는 도구라면 결국, 우리가 다룰 현실세계의 자료는 어떻게 가져오고 관리하는지에 대해 시작하니, 이제까지 배운 수업이 정말 ‘‘현실세계와 연결되겠구나’’ 라는 생각을 할 수 있게 되었습니다.

아쉬운 점은, 컴퓨터 환경이 워낙 다르다보니 DB 세팅을 할 때 직접적인 도움을 받을 수 없다는 것이 아쉬웠습니다. 물론 업무현장에서는 언제나 일어나는 상황이겠지만, 학습을 하는 입장에서는 그러한 오류들에 너무 많은 시간을 빼앗기는 것이 아까운것도 사실이기는 했습니다.

2. 자료구조 및 알고리즘 및 코딩 테스트 후기

사실, Java는 열심히 학습하는 것에 재미가 있었다면, 자료구조와 알고리즘은 ‘이 길이 내 길이 맞나’를 계속 반문하게 되는 학습내용이었습니다.
대체 이런 자료구조는 누구의 머리에서 나온 것일까, 나는 그의 발끝이라도 따라갈 수 있을 것인가, 나의 뇌는 왜 일을 하지 않는 것인가 등의 질문이 계속 머리속을 지배합니다. (다행히 좋은 스터디원들을 만나서 격려하고 응원하며 멘탈을 관리하고 있습니다. 땡큐!)

자료구조 및 알고리즘 강의는 이론을 설명해주고 그에 해당하는 기본적인 예제문제, 그리고 코딩 테스트에 활용되기 직전의 심화문제로 순차적으로 나누어 문제를 경험하게 해줍니다. 이 부분이 저에게는 도움이 많이 되었습니다. 개념을 익히고 바로 코딩 테스트 실전문제로 가지 않고 단계적으로 접근하기 때문에 용기를 가질 수 있는 것 같습니다.!

제로베이스 백엔드 스쿨은 매주 목요일 3시간짜리의 코딩테스트를 치룹니다. 이 시간을 통해 내가 학습한 자료구조, 알고리즘에 대해 점검하고 내가 몰랐던 개념과 메서드들을 배울 수 있습니다. 그리고 치열했던 3시간이 끝나면 금요일에는 코딩 테스트 해설 강의가 업로드됩니다.

해설강의는 직접 문제를 출제한 멘토님이 출제 의도와 시간 복잡도, 그리고 어떤 부분을 유의해야 하는지 등을 자세히 알려줍니다. 해설강의의 좋은점은, 문제의 접근법에 대해서 알 수 있다는 것입니다. 그저 해설코드만 보는 것이 아니라 이러한 문제를 보면 어떻게 접근해야 하는지를 말이죠. 코딩테스트에서 가장 큰 벽인 ‘시간복잡도’에 대해서도 계속 신경쓸 수 있도록 멘토링을 해주는 점이 좋았습니다.

다만, 조금 아쉬웠던 것은 실시간 강의는 아니기 때문에 직접 궁금한 내용을 물어보지 못하는 점이었습니다. 덕분에(?) 궁금한 내용을 바로 해결받지 못하고 구글링과 수강생들을 통해 함께 학습해 나가게 되기는 합니다…..! (때문에 제로베이스에서도 수강생 질의응답채널을 만들어 먼저 소통하도록 권장하는 것 같습니다.)

3. 컴퓨터 공학 학습 후기

제가 제일 좋아하는 수업 중 하나입니다. 1개월차 후기에도 작성했던 것 처럼, 저는 단순이 ‘코더’가 아니라 ‘개발자’가 되고 싶습니다. 그리고 그러한 마인드와 실력향상을 위해 정말 중요한 ‘컴퓨터 공학’ 수업이 도움이 많이 됩니다.

그저 전원을 누르고 컴퓨터가 켜지면 IDE를 켜서 코딩을 하는 단순 코더가 아니라, 어떤 상황에서 어떤 컴퓨터 자원을 활용해야 하는지에 대해서 끊임없이 고민할 수 있게 해줍니다. 자칫 이론수업이라고 느낄 수 있는 수업이지만, 수업의 초점이 개발자가 되기 위해 알면 좋을 기초적인 내용을 위주로 다루기 때문에 대학교의 이론수업처럼 지루하지 않은 점이 좋았습니다.
(컴퓨터 공학 수업을 들었더니, 삼성전자와 TSMC, 애플과 인텔의 CPU를 알게 되어 주식투자에도 도움이…?)

지난 달까지는 프로세스와 스레드에 대해서 배우게 되었고, 이번달은 대부분의 서버에 활용되는 리눅스 시스템에 대해서 학습하고 있습니다. AWS에 개인 서버를 오픈하였고, Java수업에서 진행했던 DataBase를 해당 서버에 오픈할 수 있는 상황이 되었습니다. 조만간 AWS에 나의 DB를 만들어 과제를 진행해볼 예정입니다.


2

제로베이스 백엔드 스쿨에서는 이렇게 백엔드 스쿨 권장 가이드라인을 제공해줍니다. 가이드라인을 보면 알 수 있듯이, Java, 자료구조와 알고리즘, 그리고 컴퓨터 공학을 ‘함께’ 배우게 됩니다.

개인적으로 처음에는 하나를 집중해서 공부하고 싶다는 생각을 했었습니다. Java를 다 배우고 자료구조와 알고리즘을 배우면 안될까? CS는 나중에 따로 들으면 안될까? 물론 온라인 과정이기 때문에 그럴 수 있습니다. 하지만 가이드를 제시한 만큼 이유가 있을거라고 생각해서 가이드에 맞춰 진도를 나가고 있는데, 요즘은 함께 학습했을 때 나는 시너지들을 느끼고 있습니다.

자료구조를 공부하면서 필요한 메서드들을 Java에서 학습할 수 있었고, 코딩테스트에서 메모리초과가 나는 이유와 상황에 대해서 컴퓨터 구조 관점으로 생각해볼 수 있게 되었습니다. 이러한 것들이 저를 좀 더 ‘개발자’스럽게 만들어 준다는 생각을 하게 됩니다.


지난번 공유했던 저의 목표에 대한 피드백을 하자면

  • 완주

포기하지 않고 잘 달리고 있는 것 같습니다. 2주정도 전쯤 슬럼프가 심하게 왔는데, 포기하지 않고 꾸준히 학습해야겠다는 생각과, 너무 조급해하지 말고 내 최선을 다하자는 생각으로 멘탈관리를 하며 잘 넘긴 것 같습니다. 슬럼프가 분명히 또 올텐데, 지금 이 글을 보며 ‘그때도 잘 이겨냈지’라고 생각하려고 합니다.

  • 잔디심기(깃헙)

3

으아….. 해당 일에 공부를 하면서 ‘이거 다 하고 커밋해야지’ 하다가 12시가 넘어버렸습니다….. 잔디 구멍이 났네요…. 뭐 별 수 있겠습니까. 나머지 잔디들은 놓치지 않고 심으며 열심히 학습하겠습니다.

  • 코딩테스트 만점

이건 아직 엄두를 못내겠습니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 만점이요? ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 너무 높은 목표인건가 싶네요 ㅋㅋㅋㅋㅋㅋㅋㅋ 만점도 만점이지만, 매번 케이스가 1-2개씩 틀려서 한 문제에서 온전하게 만점을 받는것도 꽤 어렵더라구요… 일단 푼 문제들은 만점을 받자는 목표로 열심히 달려보겠습니다!!


이제는 지금까지 배운 Java와 DB를 활용해 공공데이터를 가져오는 과제를 하게 됩니다. 이 과제를 통해 처음부터 끝까지 나만의 것을 만들어 볼 수 있을 것 같습니다. 기대가 되는 과제입니다. 3개월차 후기에서는 이 과제에 대한 이야기가 큰 부분을 차지할 것 같습니다. (아마 구현하는 부분에서의 어려움에 욕을 하고 있겠지요?)

추가로 궁금한 것이 있으시다면 언제든지 제 메일로도 문의해주시면 아는 선에서 답변 드리겠습니다.

취업, 취업, 화이팅! 자바, 자바, 화이팅!


이 글은 데이원컴퍼니로부터 소정의 원고료를 지급받아 작성되었습니다

카테고리:

업데이트:

댓글남기기