글을 시작하며

정신없이 지나간 3주를 다시 생각해보면서 초심으로 돌아가고자 작성합니다!!!

 

 

전체적인 일정

매일 특정 강의가 오픈이 되고 오전에는 강의를 듣고 오후에 동료들과 진행하는 피어세션 시간 이후 개인 자습과 학습정리로 진행됐다.

중간중간에 부스트캠프 측에서 열리는 이벤트시간이나 피어세션을 제외하고는 모든 일정은 자율적이며 밥먹는 시간도 따로 있지는 않았다.

하루의 마지막으로는 하루동안 공부한 내용을 개인 블로그나 노션 같은 곳에 정리하는 형식으로 하루를 마무리한다.

 

수업진행

부스트캠프의 수업은 동영상을 시청하는 방식으로 진행됐는데 처음에는 현강? 라이브강의가 아니라서 실망한 느낌이 컸다... 아무리 네이버에서 진행하는거지만 현강이 아니네.. 그냥 학원느낌이려나 라는 기분?

 

그런데 이런 생각은 정말 3일만에 갈아엎어지고 이러한 시스템에 감사하게 됐다ㅋㅋㅋㅋㅋㅋ

하루에 정해진 강의를 한번에 소화할 수 있을꺼라 자만한 내 자신에 부끄러워지는..

 

동영상으로 강의가 진행되다 보니 모르는 내용이 나오면 다시 돌려보기도 하고 구글링해서 모르는 부분을 다시 공부하기도 하고 학습정리할때 다시한번 찾아보기도 하고... 정말 계속 돌려본다ㅋㅋㅋㅋㅋ

수업 내용이 다 알려주려고 하기 보다는 주요 내용을 알려주고 해당 내용으로 더 공부하게 해줘서 더 좋은 것 같다!

 

피어세션

부스트캠프에서 만들어주신 조로 팀원들을 만나게 됐다

처음에는 정말 어색하고 말도 없고.. 그러다가 이제는 서로 농담도 하고 취미생활도 이야기하고ㅋㅋㅋ 매일 만나다보니 친해진 것 같다. 팀원분들 성격이 너무너무 좋아서 정말 만족하고 있다

 

각 조마다 규칙을 정해서 자율적으로 진행하는데 우리조는 전날 공부한 내용에서 질문 + 다른 조원이 알면 좋은 부분을 올려 서로 지식을 공유하는 방식이다. 내용을 공유하다가 중간에 다같이 모르는 부분이 있으면 조교님에게 질문하기도 했다. 또 공유하는 내용이 단순히 휘발성으로 사라지는 것을 방지하기 위해서 팀원들과 노션으로 기록하기로 했다! 처음 접해보는 노션.. 상당히 좋은 것 같다ㅋㅋㅋ

 

다른 팀과 거의 비슷한 것 같지만 우리조는 착하고 배려많으신 조교님을 만나 매주 특정 시간에 조교님과 함께 추가 스터디 시간을 가지면서 팀원들끼리 해결하지 못한 내용?이 있으면 조교님이 알려주셨다. 정말 감사합니당😅😅

 

학습정리

하루 마무리하면서 학습정리를 하는데 나는 이 블로그에 계속 남길 생각이었다. 하지만 바로 여기에 올리기에는 뭔가 정확하지 않은 내용?이 많이 들어갈 것 같은 기분이었다. 팀원분들이 노션으로 하길래 나도 노션으로 시작했다. 단순히 필기하는 내용은 노션으로 작성하고 복습하는 기분으로 이 블로그에 올리기로 결심했다!

구경하고 싶으신 분들은 [인공지능 공부/이론 및 파이썬]으로 ㅎㅎ

 

 

 

[이론 및 파이썬] 확률 및 통계 용어 정리(1)

글을 시작하며 부스트캠프 수업을 들으면서 확률 관련 용어에 대한 개념이 부족해 글을 작성했습니다.😥 수업에 열심히 따라가자..! 글의 순서는 다음과 같습니다 확률변수 이산형 확률변수와

hwanii-with.tistory.com

 

학습정리한 내용은 매일 url을 올리는 형식으로 내가 작성한 내용은 다른 캠퍼분들이 볼 수 있고, 다른 캠퍼분들이 작성한 내용도 내가 볼 수 있다. 다른 캠퍼분들이 작성한 내용을 보면서 내가 정리한 것은 정리가 아니라는 것을 깨닫느...😅

 

보고 배워야지..ㅋㅋㅋㅋ

 

개인적인 느낌

스스로 느끼는 것은 정말 똑똑한 분들이 많다는 것! 그리고 나는 아직도 배울 것이 많다는 것이다내가 알고 있었다는 부분도 얕은 지식이었다는 점과 그 부분을 더 깊게 알려고 하는 노력과 왜?라는 질문을 생각하고 혼자 해결하다 안되면 물어보는 것이 좋은 해결방법이라는 것도 다시 깨닫고 있다ㅎㅎ

 

또 다른 것은 학교를 다니면서 나는 코딩을 할꺼야! 라는 생각으로 학교를 다니고 수학(신시....정보통신수학..)은 많이 안볼꺼라는 생각이었는데 이번 수업으로 그 시절 공부했던 내용을 활용하는 것을 보고는 아 괜히 공부하던 것이 아니구나라는 것을 깨닫는다ㅋㅋㅋㅋㅋ 이번 쉬는 주 동안 그동안 배웠던 것 다시한번 공부해야지....

 

아직 3주밖에 안지났지만 매일 쉴틈없이 공부하는 이 기분은 좋으면서도 힘들다ㅋㅋㅋㅋ 정말 배우고 싶던 내용이라 기분이 좋지만 몸과 뇌가 힘들어하는?😐

 

 

이제 본격적으로 실습과 수업이 시작하는데 남은 기간 계속 화이팅하자!!(다른 부스트캠퍼 분들도 화이팅!!🥰🥰🥰)

 

 

Python의 시작

  • 1991년 귀도 반 로섬이 발표한 언어
  • 플랫폼 독립적
  • 인터프리터 언어
  • 객체 지향 언어
  • 동적 타이핑 언어
  • 처음 C언어로 구현됨

 

이름의 유래

귀도 반 로섬이 Monpy Python's Flying circus라는 코미디프로를 좋아하여 해당 프로그램에서 이름을 따서 Python이라고 지었다고 합니다.

혹은 그리스 신화 속에서 델포이 신탁소를 지키던 뱀인 피톤에서 유래했다고도 합니다. 정확한 것은 아니지만 이러한 이유 때문에 아나콘다라는 이름이 나왔다고 생각(?)할 수 있습니다ㅎㅎ

 

Python의 특징

플랫폼 독립적인 인터프리터 언어

  • 플랫폼(OS) : 윈도우, 리눅스, 안드로이드, Mac os, ios 등 프로그램이 실행하는 운영체제를 플랫폼이라고 합니다.
  • 독립적인(관계없는, 상관없는) : OS에 상관없이 한번 프로그램을 작성하면 사용가능.
  • 인터프리터(통역기를 사용하는 언어) : 소스코드를 바로 실행할 수 있게 지원하는 프로그램 실행 방법.

결론적으로 파이썬은 파이썬 문법에 따라서 적으면 되지만 운영체제에서 작동을 하기 위해선 각각의 운영체제에 맞는 인터프리터 프로그램을 설치해서 번역해주는, 해석해주는 것이라고 생각하면 됩니다.

 

컴파일러와 인터프리터 언어의 차이점

  컴파일러 인터프리터
작동방법 소스코드를 기계어로 먼저 번역
해당 플랫폼에 최적화되어 프로그램을 실행
별도의 번역과정 없이 소스코드를 실행한 시점에 해석하여 컴퓨터가 처리할 수 있도록 함.
장점
단점
실행속도가 빠름
한 번의 많은 기억 장소 필요
간단히 작성, 메모리가 적게 필요
실행속도가 느림
주요 언어 C, C++, C#, Java 파이썬, 스칼라

 

객체 지향 언어

실행 순서가 아니라 단위 모듈(객체) 중심으로 프로그램을 작성합니다.

하나의 객체는 어떤 목적을 달성하기 위한 행동(method)와 속성(attribute)을 가지고 있습니다.

 

객체 지향 특징

  1. 캡슐화(Encapsulation)
    • 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것.
    • 캡슐화된 객체의 세부 내용이 외부에 은폐(정보 은닉)되어, 변경이 발생할 때 오류의 파급효과가 낮아짐.
    • 재사용 용이
  2. 정보은닉(Information Hiding)
    • 캡슐화에서 가장 중요
    • 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근 허용.
  3. 추상화(Abstractions)
    • 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화한 것.
    • 모델화 하는 것.
  4. 상속성(Inheritance)
    • 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스가 물려 받는 것.
    • 상속성을 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 자신의 속성으로 사용가능.
  5. 다형성(Polymorphism)
    • 메시지에 의해 개체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력을 의미.
    • 객체(클래스)들은 동일한 메소드명을 사용하며 같은 의미의 응답을 함.

동적 타이핑 언어

프로그램이 실행하는 시점에 프로그램이 사용해야할 데이터에 대한 타입을 결정합니다.

간단하게 프로그램이 실행하는 시점이란 것이 동적이라는 것으로 생각하면 됩니다.

 

Why Python?!

  • 쉽고 간단하며 다양합니다.
  • 이해하기 쉬운 문법 -> 사람의 시간이 줄어든다.(사람의 시간이 기계의 시간보다 중요함)
  • 다양한 라이브러리 : 파이썬 대부분의 라이브러리가 다른 사용자에 의해서 구현되어 있습니다.

처음 들었지만 너무나 맘에 들었던 말로 마무리하겠습니다.😀

Life is short. You need Python!

글을 시작하며

해당 카테고리는 네이버 부스트캠프의 교육일지로 작성하는 페이지입니다.

강의를 기반으로 작성하며, 추가적으로 필요한 부분은 책과 구글링을 통해서 추가했습니다. 😀

 

Operating System(운영체제)

  • 우리의 프로그램이 동작할 수 있는 구동 환경입니다.
  • 프로그램은 운영체제에 따라서 방식이 다릅니다. 예를 들면 윈도우에서는 exe 실행파일로 프로그램이 실행되지만 Mac에서는 실행되지 않습니다.
  • 어떤 개발 환경에서 개발을 실행할 것인가에 대한 선택을 해야합니다.

File System(파일 시스템)

OS에서 파일을 저장하는 트리구조 저장 체계로 파일의 기본체계에는 파일과 디렉토리가 있습니다.

디렉터리(Directory) 파일(File)
폴더 또는 디렉터리라 불림. 컴퓨터에서 정보를 저장하는 논리적인 단위(위키피디아 참고)
파일과 다른 디렉터리를 포함할 수 있음. 파일은 파일명과 확장자로 구분(ex : hello.py)
실행, 쓰기, 읽기 등을 할 수 있음.

파일의 고유한 위치를 경로라고 합니다. 트리구조상 노드의 연결입니다. 경로에는 절대 경로와 상대 경로가 있습니다.

 

절대 경로

  • 루트 디렉터리부터 파일 위치까지의 경로
  • ex : C:\user\docs\test.txt

상대 경로

  • 현재 있는 디렉터리부터 타깃 파일까지의 경로
  • ../../test.txt

 

CLI(Command Line Interface)

GUI(Graphic User Interface)와 달리 Text를 사용하여 컴퓨터에 명령을 입력하는 인터페이스 체계

 

Windows - CMD, Windows Terminal, cmder

Mac, Linux - Terminal

 

MS Store에서 Unbuntu도 지원하고 있어서 Linux Terminal을 사용할 수 있습니다.

 

기본적인 Shell 명령어

윈도우 CMD 창 명령어 Shell 명령어 설명
CD cd 현재 디렉토리 이름을 보여주거나 바꿉니다. (change directory)
CLS clear CMD 화면에 표시된 것을 모두 지웁니다.(clear screen)
COPY cp 하나 이상의 파일을 다른 위치로 복사
DEL rm 하나 이상의 파일을 지움(delete)
DIR ls 디렉토리에 있는 파일과 하위 디렉터리 목록을 보여줌.(directory)

 

먼저 어떤 문제가 나왔고 어떤 알고리즘을 사용했는지는 시험전에 서약을 통해서 공개할 수 없음을 말씀드립니다!

 

코테준비

이전에도 코딩테스트를 몇 번 봤고 재미로 꾸준하게 문제를 풀긴했지만 이번 시험준비는 작정하고 문제만 계속 풀었습니다. 물론 시험을 위한 것이지만 많은 재미가 있더라고요.ㅋㅋㅋㅋ

 

공부를 한 방식은 부스트캠프 시험이 프로그래머스를 통해서 본다고해서 프로그래머스 문제 위주로 풀었습니다. 설명회에서 일반 기업의 코딩테스트 난이도라고 하셨고 2레벨 수준이면 다 풀 수 있겠다고 생각했습니다.

결론적으로는 2레벨 수준으로 생각한 것은 대단한 착각이었지요...😅

 

코딩테스트 준비를 하면서 동시에 블로그도 시작했습니다!

단순하게 문제만 풀다가 다시 그 문제를 보니 까먹은 경우가 많더라고요. 잊지 않기 위해서 다음과 같은 규칙을 스스로 정하고 공부를 시작했습니다

 

 

  1. 스스로 문제 풀어보기 (단, 알고리즘 구현으로 1시간이 넘어간 경우. 전체 코드 구현까지 3시간이 넘어간 경우에는 모르는것으로 생각하고 찾아보기)
  2. 문제의 알고리즘을 전체적으로 다시 확인해보기(모르는 문제의 경우 해답을 알고 난 이후 다시 풀기)
  3. 코드에 주석처리를 통해 어디서 어떤 코드가 왜 쓰였는지 작성하기
  4. 마지막으로 블로그에 문제후기를 등록하여 어떤 방식으로 문제를 해결해나갔는지 작성

 

위와 같은 규칙을 지키기 힘들면서도 하나씩 해내가는게 재밌었습니다😁😁😁

 

공부한 알고리즘을 정리해보면 이정도입니다.

차후에 블로그에 알고리즘에 대한 설명도 작성해야겠네요. 점점 할 일이 많아지는 기분ㅋㅋㅋㅋ

  • 완전탐색
  • 이분탐색
  • heap 정렬
  • 그래프
  • DFS, BFS
  • DP
  • 그리디, 다익스트라, 크루스칼
  • 조합, 순열

코테후기

공부를 하면서 자만하던 저를 반성하고 다시 공부하게 만드는 시험이었습니다.....😅

막상 시험을 시작하니 많은 것들이 기억이 안나고 당황을 하더라고요. 전체적인 느낌은 정말 전형적인 기업 코딩테스트였던거 같아요. 교육이어서 쉽다는 생각을 하다가 멘탈이...ㅋㅋㅋ

그래도 다행히 정신차리고 풀긴 풀었네요

 

자만하지말고 더 열심히 공부를 시작하자!!

 

결과

결과는 다행히 합격입니다..... 정말 마지막 순간까지 긴장했어요ㅠㅠ 긴장하는 기분이 좋은 기분은 아니네요

그래도 11월 중순부터 시작해서 목표를 설정하고 혼자서 공부한 것에 대한 결과가 잘 나와서 너무너무 만족합니다!!

앞으로 진행되는 6개월동안 정말 영혼을 갈아서 넣으려고해요ㅋㅋㅋㅋ

같이 교육을 진행하는 모든 분들이 좋은 결과를 얻기를 바라겠습니다!!

글을 시작하며...

11월 중순에 인스타와 페이스북 광고를 보고 준비한 과정이 21년이 되어서 끝이 났습니다...🤤

지원하게 된 동기부터 넋두리하듯이 어떻게 진행되는지 써보려고 해요. 물론 해당 시험에 대해서 직접적으로 언급하면 안 되기 때문에 느낌만 쓰는 글이 될 겁니다. 😊

지원동기

스타트업에서 자연어처리도 해보고 졸업작품, 공모전 작품에서는 자연어처리랑 추천시스템을 만들어보면서 많은 부분에서 막히더라고요. 이론적인 부분, 프로그래밍 부분 등 부족함을 해결하려 논문도 찾아보고 git에 들어가서 다른 분들이 한 프로젝트 참고도 해보고 페이스북 그룹에서 질문도 해봤네요. 하면 할수록 부족함이 보이고 더 많은 지식과 스킬이 필요함을 느끼다 AI Tech를 보고 지원하게 됐습니다!

잘할 수 있을지, 어려울지 재고 있는 거 보단 배우고 싶은 거 제대로 배울 수 있겠다 생각했습니다 ㅋㅋㅋ

BAT

설명회나 부스트캠프 홈페이지에서는 대략적으로 설명을 해주더라고요

일단 홈페이지에서는 아래와 같이 설명했어요. 더 자세하게 확인하고 싶은 분은 아래 링크에서 자세히 확인해보세요

 

부스트캠프

개발자의 지속 가능한 성장을 추구하는 학습 커뮤니티, 부스트캠프 AI Tech

boostcamp.connect.or.kr

  • 이진탐색트리, 정렬 수준의 자료 구조와 알고리즘 지식
  • 행렬 연산 수준의 선형대수 지식
  • 이산수학/미적분학/확률과 통계 지식
  • 초급 수준의 머신러닝 지식(유튜브 모두의딥러닝)

추가적으로 블로그에서 문제도 제공해줬어요!

 

자가 진단 테스트 문항을 공개합니다 :)

AI 엔지니어에게 필요한 지식과 경험을 담은 부스트캠프 AI Tech​훌륭한 동료들과 함께 하기에 본인...

blog.naver.com

 

진짜 후기로는 정말 지원자격에 있는 수준이었습니다.

몇 문제가 나왔는지, 어떤 문제가 나왔는지와 같은 자세한 정보는 제3자에게 공유하면 안 된다는 서약을 해서 제공할 수 없네요 ㅎㅎ..

신기했던 건 이제까지 프로그래머스에서 코테만 봤었는데 객관식 시험은 처음이라 '오? 이런 것도 있었네' 이거네요ㅋㅋ

 

수학 같은 경우는 학교에서 수업을 들었던 것들이라 집에 있는 책들 보면서 공식 정리하고 어떻게 했었는지만 다시 생각하는 정도였고 모두의 딥러닝을 열심히 봤어요. 시험보다는 머신러닝 딥러닝 공부한다는 느낌으로요.

 

다음 편에서는 코테 후기 남기려고 해 볼게요

+ Recent posts