그동안 사정이 있어서 부트캠프 본격적인 시작을 못했었는데 25년도 새로운 마음으로 부트캠프 기수에 참여를 하게 되었다.계속 미루고만 있는 나를....디렉터님이 이끌어내주셨다...(한편으론 정말 대단하다고 생각함..) 그래서 본 기수 시작하기 전에 예습하려고 미리 강의를 수강했었는데, 개발일지를 어디에다가 적을까하다가 티스토리로 결정 ㅎㅎ
네이버나 뎁스노트에다가 써보려고 했는데, 부담없이 티스토리에다가 쓰려고 한다!
할 수 있다 할 수 있다!! 할 수 있다!!!!!!!!!!!
나의 올해 25년도 새해 목표는 돌파와 확장이다. 내 안의 돌파를 이끌어내고 경험을 확장하여 더 나은 사람으로 거듭나고 싶다.
개발자 이직 취업을 준비하게 된 이유?
우선 나는 선출(운동선수)이기 때문에 컴퓨터와는 거리가 되게 먼데.... 그만두고 사무직 일을 하다보니까 타자만 빨라지고 ㅋㅋㅋ 컴퓨터는 잘 다룰 줄 몰랐다... 실제로 회사 입사하기 전까지만 하더라도 컴퓨터 연결하는 법도 몰라서 (코드만 맞춰서 끼우면 되는건데..)ㅋㅋㅋㅋ 윗 사람들을 당황시켰던 적이 있다. 그래도 눈치있고 일머리 있다는 소리는 듣고 자라와서인지 금방 익히고 업무도 잘 적응해 나갔다. 회사 취업에 있어서 기본적이라고 했던 엑셀조차 익히지 않아서 곁눈질로 기본적인 것들을 배웠다....
운동만 하고 자라서 그런지 업무 4년차 될때 쯤인가 앉아서 반복되는 업무에 뭔가 지쳐가는 걸 느꼈다. 무엇보다도 일에 대해서 크게 재미를 느끼지 못했던 것 같다. 그래서 색다른 것을 배워보고 싶다는 생각하다가 불현듯 떠오른게 있는데 그게 바로 개발자였다. 그 이유는 정말 단순하다. '내가 정말 못할 것 같아서'ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
내 취미는 클라이밍이다, 문제를 풀어나가는 맛이 얼마나 성취감이 높은지 잘 알기 때문에 내가 잘 못하는 영역에 도전해 보고 싶다는 생각이 들었다. 근데 처음에 생각까지는 했는데 그 다음 어떻게 배워야 할지는 감조차 잡히지 않았다. 그래서 이것저것 검색도 해봤던 것 같다.
30대에 진입하고 나서 다시 취업이나 이직을 준비하는 것은 다른 사람은 몰라도 적어도 나에게는 부담이라는 생각이 들었다. 그럼에도 불구하고 새로운 것에 도전을 해봐야 겠다고 마음이 들었는데, 그렇다고 생업을 포기해가면서까지 학업에 매진할 열정까지는 생기지 않았다... 실제로 일을 그만두고 배운다는 것 자체가 나에게는 타격이 굉장히 크다고 생각이 들었고 그래서 국비지원은 아예 생각조차 안했다..돈이야 벌어서 내면 되는거고.... 그래서 시작을 하게 된 것이 바로 슈퍼코딩.
이거는 나중에 기회가 되면 진행하게 된 썰에 대해서 자세하게 풀어 써보도록 하겠다.

별 거 아닌 것 같아도 저 수강완료 표시가 기분을 좋게 만든다.... 완전 첫강 오리엔테이션 강의는 1.4배속으로 하고 들었는데, 수업이 끝났는데 수강완료 표시가 안떠서 원래 그런건 줄 알았는데 두 번째 강의 부터는 본격적이라 정배속으로 하고 수업을 들으니 수강 완료 표시가 떴다. 그래서 다시 처음부터 들었다;
그래서 담임디렉터님한테 여쭤봤더니 배속으로 들어야 수강완료 표시가 뜬다고 한다. (처음엔 불편하겠거니 생각했는데, 시간 지날 수록 내가 스페이스 쳐가면서 멈추는 부분도 많고 뒷쪽으로 돌려보는 부분도 많아서 전혀 상관없음 정배속으로 보는거 추천)
이게 온라인 강의의 가장 큰 장점이 아닐까 싶다. 이해가 안되는 부분들은 무한으로 돌려서 다시 보고 다시 보고 내가 듣고 싶은대로 들으면 수강완료 표시는 저절로 떴음.
그리고 강의 하나하나 끝날때마다

이런 설문조사가 떴는데..... 솔직히 조금 귀찮았지만 수강생들의 수강 환경을 고려하면서 개선해 나가려는 의지 같아 보여서 진짜 자세하게 잘 적었었다ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
우선 OT주차 강의를 들으면서 배웠던 내용에 대해서 정리해 보려고 한다. (그래봤자 2일이긴 함..)
모든 걸 다 알 필요는 없다. 구글링을 하거나 Chat GPT에게 질문 하는 걸 잘 활용하기만 한다면 쉽게 개발에 참여할 수도 있다고 한다. 검색을 잘 하는 것 또한 개발자의 능력이라고 하는데, 검색이라는 간접적인 경험을 통해서 경험의 근육을 키워야 된다고 했다.
수선생님도 수업을 듣다가 모르는 부분이 있으면 검색을 많이 활용해보라고 하셨다. 예를 들어서 사과 안의 씨앗은 몇개가 들어있는지 셀 수는 있지만 씨앗 속의 사과는 셀 수 없다는 것과 마찬가지라고 하셨다. 훌륭한 개발자가 되기 전의 씨앗단계 안에서 씨앗 안에 많은 사과를 품었으면 좋겠다고 하셨다.
그리고 개발을 하다보면 필연적으로 맞닥뜨리게 되는게 바로 버그인데, 버그를 마주하게 되면 스트레스 받는게 아니라 성장할 수 있는 기회라고 생각하라고 하셨다. 버그는 당연한 것이기 때문에 디버깅에 익숙해 져야 된다고 하셨다.
실제로 개발자들끼리의 농담으로 버그도 기능이라고...한다는데....ㅎㅎㅋㅋ 버그보다도 디버깅 하는 과정에 대해 초점을 맞춰서 실습해봐야 겠다는 생각이 들었다.
오늘 배운 코딩 용어 정리
*프로그래밍에 대한 기본 정리
-컴퓨팅적 사고가 필요한 이유
(1) 데이터로 이뤄진 컴퓨터 뇌구조
컴퓨터는 0과 1 데이터 세계에 살고 있다.
효과적으로 명령을 내리려면 컴퓨팅적 사고가 필요하다.
컴퓨터를 통해 다양한 문제를 해결할 수 있고, 개발 실력이 늘어날 수 있다. (의식적으로 많이 연습해야 할 필요가 있음)
컴퓨터처럼 생각하려면 중요한 것
- 분해
- 패턴인식
- 추상화
- 알고리즘
결국 문제를 구조화해서 알고리즘을 도출하는 것이다.
분해는 큰 문제를 작은 문제들로 분해하는 과정이고 패턴인식은 그 안에서 패턴을 찾고 그것을 바탕으로 추상화 또는 일반화 하여 공식을 만들어내서 최종적으로 알고리즘을 도출하는 것이 컴퓨팅적 사고이다.
*알고리즘
- 문제를 해결하는 과정을 단계적으로 정리한 것
쉽게 예시를 들어보자면 라면을 끓이기 위해서
1. 냄비에 물을 넣는다.
2. 면과 스프를 넣는다.
3. 익으면(if) 건진다.
4. 안익으면 (else) 더 끓인다.
* 프로그래밍 언어
쉽게 말해 컴퓨터와 대화하기 위한 언어
우리가 컴퓨터처럼 사고한 것을 전달하기 위함
예시를 들어보자면 외국인과 대화를 할 때 그 나라의 언어를 사용해야 하지만 사람들에게는 바디랭귀지가 있다. 컴퓨터에게는 바디랭귀지를 할 수가 없기 떄문에 정확하게 명령을 내리려면 프로그램이 언어를 잘 알아야 한다.
*컴파일 : 프로그래밍 언어를 컴퓨터가 이해할 수 있는 기계어로 번역할 수 있는 과정
WEB / APP / PC / 인공지능, 보안, 임베디드 등이 있는데 많은 사람들이 헷갈려 하는 부분이 바로 웹 분야와 PC이다. 웹은 웹 브라우저라는 브라우저 위에서 동작하는 웹페이지랑 웹 애플리케이션을 이야기 한다.
PC는 블라우저가 없어도 기본적으로 우리 PC에 깔려있는 프로그램을 이야기한다.
쉬운 예시고 PC 카톡은 웹이 아닌 PC 이고, 네이버, 다음, 티스토리와 같이 브라우저, 링크를 통해 들어가야 사이트에 접속이 가능한 것은 웹이라고 한다.
웹은 다른 분야에 비해 자랑하기가 훨씬 좋다고 한다. 브라우저가 안깔려 있는 모바일은 없고 PC는 없다. 링크만 던져준다면 어떤 사람들이라도 내가 만든 사이트에 접속이 가능하다.
PC나 앱 같은 분야는 앱스토어나 플레이스토어에서 직접 다운로드를 받아야 한다. 업데이트를 할 때도 사용자가 직접 업데이트를 해야 한다. 반면 웹은 업데이트를 해서 배포를 하면 서버에서 업데이트된 앱을 보내주어서 업데이트도 굉장히 자유롭다.
웹은 최근 기술 발달로 인해서 자유도가 높은 편이다.

처음에 이거 보고 너무 신기했는데...ㅋㅋ 컴퓨터를 좀 다룰 수 있는 사람이라면 '에이 이게 뭐야?'라고 할 순 있다. 그치만 나에게는 정말 신세계였다.
내가 임의로 글자를 바꿔봤는데 모든 사람들이 보는 네이버가 바뀐건 아니다. 로컬환경이라고 나의 컴퓨터 환경을 이야기 하는데, 새로고침을 하면 원래대로 돌아온다^^
프론트엔드는 사용자가 보게 되는 앞단을 이야기 한다. 사용자가 처음 만나게 되는 브라우저를 켜서 사이트에 접속을 하게 되면 만나게 되는 화면이 프론트 엔드다. HTML, CSS, JavaScript라는 세 가지의 기술로 이뤄져 있다.
백엔드는 데이터를 처리, 가공, 저장햇 앞단으로 보내는 역할을 한다. 서버 측 언어와 데이터베이스 측 언어가 다르게 이뤄져 있다. 서버 측 언어 중 파이썬을 다루고 데이터베이스 중에서는 monggodb를 다룰 예쩡.
그리고 프론트엔드와 백엔드를 서로 연결해주는 역할을 하는 것이 바로 API이다.
API는 서로 다른 소프트웨어 간에 정보를 주고 받기 위한 통신규약으로 정의할 수 있는데 서로 정해진 대답을 해야 설 ㅗ알아들을 수 있는 규약을 만들어서 데이터를 주고 받을 떄 인터페이스, 서로 간의 통신규약을 만들어 놓은 것이 바로 API 이다.
* 웹 조망
-서버(백엔드)와 클라이언트(프론트엔드)의 통신은 결국 컴퓨터와 컴퓨터의 통신이다.
강의 마지막 부분에 강의 계획을 말씀해 주셨는데
2,3 주차에는 프론트엔드 (HTML, CSS, JavaScript)를 구현하면서 프로젝트를 2개 정도 진행해보고 4,5주차 백엔드 때는 서버가 어떻게 이뤄져 있고 어떤 식으로 응답을 주고 받는지, 데이터 베이스가 어떻게 이뤄져있고 어떻게 서버랑 연결되는지 살펴본다고 했다.
6주차 때는 API를 직접 구성해서 프론트엔드와 백엔드를 연결해 볼거라고 했다.
솔직히 아직까지 어떤 말인지는 잘 감이 잡히지 않지만 하나 하나 공부해 나가면서 지식 습득을 해나갈 나의 모습이 정말 기대가 된다 ㅎㅎ

하루 동안 얼만큼 공부했는지가 중요한 것이 아니라 얼마나 꾸준히 할 수 있는지가 중요한 것 같다.
화이팅!