블로그

모두의연구소

코딩 테스트 대비까지 완벽한 백엔드 기초 가이드

위니브, 제주코딩베이스캠프 대표 이호준 대표가 말하는 백엔드 개발자가 되기 위한 첫 걸음부터 완벽한 코딩 테스트 대비까지! 국가에서 지원하는 많은 부트캠프가 있습니다. 여러분도 비교 분석을 해보셨을 것이고요. 만약 비교 분석을 하지 않으셨다면 비교 분석을 해보시길 권해드립니다. 이 글에서는 이 과정이 어떠한 부분에서 특별한지를 설명해 드리고자 합니다. 1. 실무 경험 많은 강사진부트캠프마다 한 강사가 처음부터 끝까지 끌고 가는 강의가 있고, 챕터마다 강사가 나뉘는 강의도 있습니다. 둘 다 장단점이 있습니다. 저희는 각 분야의 전문성은 해당 분야 근무와 실무 경험이 있으신 분이 가장 잘 알고 있다고 판단했기 때문에 후자를 선택했습니다.파이썬과 인공지능은 국민은행 등에서 데이터 분석을 하셨던 김진환 님이, 프론트엔드는 다음 포털 검색 FE 개발 등을 하셨던 한재현 님이, 인프라는 반도체 회사에서 IT 담당하셨던 김승주 님이, 백엔드는 위니브의 대표인 제가(이호준) 이끌고 있습니다. 모두 위니브라는 조직에 속해있어 유기적으로 커뮤니케이션하고 있습니다. 자신이 맡은 분야 강의가 끝나도 채팅방을 나가거나 사라지지 않고요.또한 실무 경험과 더불어 가장 큰 것은 강의 경험이라고 생각합니다. 모두 아래 보이는 다양한 콘텐츠 제작과 대학, 대기업 등에 강의 경험, 출판 경험이 있는 분들입니다.저희는 다양한 콘텐츠 제작(책과 강의 제작) 경험과 다수의 부트캠프 운영 경험이 있습니다. 다양한 곳에 콘텐츠를 공급하고 있지만, 그중에서도 인프런에서는 57개 강의, 7만여 명 수강생, 평점 4.8점을 달성하고 있어요. 제주코딩베이스캠프라는 Django 부트캠프를 제주에서 진행하고 있기도 합니다. 카카오와 함께하는 알고리즘 산책 등 다양한 프로그램 운영 경험도 가지고 있습니다. 유튜브 채널은 제주코딩베이스캠프라는 채널을 운영하고 있고요.이렇게 쌓인 노하우를 통해 여러분의 드라마틱한 성장을 돕겠습니다.  2. 개별 학습 욕구에 맞춘 학습 방식많은 학생이 모여 수업을 듣는 만큼 다양한 학습 경험치를 가지고 있습니다. 컴퓨터공학과를 졸업한 분, 이제 막 시작하신 분, 이미 다른 기업에서 실무를 하다 오신 분 등이요. 다양한 분들이 들어오는 만큼 학습 방법에서도 차이가 있습니다.이제 막 시작하신 분은 모든 수업에 집중해서 들을 수 있도록 구성이 되어 있고, 관련 학과를 졸업하신 분들은 부족한 부분만 학습할 수 있도록 강의자료와 월별 영상 강의가 나갑니다. 이미 실무를 하신 분들은 책 출판이나 오픈소스 프로젝트 등 다양한 커리어를 쌓을 수 있도록 구성되어 있습니다. 이밖에도 수준별 스터디 그룹 구성, 개발 실무진의 멘토링 등을 통하여 가능하면 여러분의 다양한 학습 욕구가 해소될 수 있도록 진행하고 있습니다.공통 교육은 줌을 통한 온라인 라이브로 진행이 되고, 디스코드를 통해 실시간 질문을 받습니다. 진도는 중위 진도로 조정해가며 나가고, 어렵거나 쉬우신 분들을 위해 공부할 수 있는 학습자료나 자신의 실력을 가늠할 수 있는 과제를 드립니다.강사와 수강생의 시간이 꼭 동기화 될 필요는 없습니다. 이미 해당 과목이나 당일 나가는 진도에 대해 충분한 이해를 하고 있다면 더 높은 수준으로 넘어갈 수 있도록 학습 자료를 제공합니다. 부족한 부분 2%를 채우러 오신 분 같은 경우 과제로 바로 넘어가거나 오픈소스나 책 출판 프로젝트에 좀 더 몰입하는 분도 있으십니다.다만 이 경우에도 필수 과제는 꼭 해주셔야 합니다. 선택 과제와 필수 과제가 주어지는데요. 이 과제를 통해 여러분이 해당 과정에 꼭 필요한 학습 개념을 이해하고 있는지 판단합니다. 3. 책 출판과 오픈소스 프로젝트여러분을 좀 더 밀도 있는 개발자로 성장 시키고, 이력서에 한 줄 넣어 취업의 험난한 허들을 넘을 수 있도록 캠프 외 프로젝트로 책 출판 프로젝트와 오픈소스 프로젝트를 진행합니다.책 출판 프로젝트는 항상 무료책으로만 출판을 하고 있으며 반기나 분기별로 출판하고 있습니다. 이러한 프로젝트는 여러분의 이력서에 오랫동안 남을 것입니다. 지금 취업뿐만 아니라 여러분이 다음에 이직을 하실 때도 많은 도움이 될 것이고요.다만 이 프로젝트는 자율 프로젝트입니다. 출판이 쉬운 작업은 아니기 때문에 의지가 있어야 합니다. 책 출판은 의지가 있는 분들을 모으고, 브레인스토밍을 통해 주제를 선정한 다음 그 주제를 집필할 분들을 모아 팀끼리 집필하게 됩니다. 필수로 참여해야 하는 프로그램은 아닙니다. 한 권의 책을 출판한다는 것은 쉬운 일은 아닙니다. 쉽지 않기 때문에 가치가 있습니다. 이를 통해 여러분들은 좀 더 밀도 있는 개발자가 되실 수 있습니다.오늘 자(2023/11/22) 리디북스 컴퓨터/IT 전체 무료 책 인기순으로 보았을 때 첫 페이지에 있는 책 대부분이 저희가 집필한 책이거나 캠프에 참여한 학생들이 집필한 책입니다. 출판사 사도출판으로 확인하시면 됩니다.오픈소스 프로젝트는 관련된 주제가 있을 때 진행하고, 관련된 주제가 없을 경우 진행하지 않습니다. 보통 반기에 한 건씩 진행하고 있습니다. 대표적인 프로젝트로 제주특별자치도 상황판으로도 사용했었던 라이브 코로나(https://livecorona.co.kr/)가 있고, 스탑워(https://stopwar.co.kr/), 플랙스엔그리드(https://flexngrid.com/), 에스큐엘스쿨(https://sqlschool.co.kr/) 등을 진행했었습니다. 오픈소스 프로젝트는 실무에 계신 분 중 뜻이 있는 분들이 합류해 함께 개발합니다. 4. 반복학습과 코드 리뷰, 코딩 테스트처음 하는 분에게 가장 두렵고 힘든 것은 ‘익숙하지 않음’ 입니다. 12번의 반복을 통해 Django를 학습할 수 있도록 다양한 프로젝트가 준비되어 있고, 실무에 대한 막연한 두려움도 이겨내실 수 있도록 실제 실무에서 하는 것과 유사한 프로젝트가 준비되어 있습니다.각 프로젝트에는 발표회가 준비되어 있습니다. 이 발표회와 프로젝트 시트(sheet)를 통해 서로가 서로의 프로젝트를 공유할 수 있는 구성으로 동반성장 할 수 있도록 구성이 되어 있습니다. 발표마다 상장이 준비되어 있습니다. 발표가 있는 프로젝트는 총 3개이고 별개로 대상, 최우수상, 우수상이 나가게 됩니다.이러한 경험과 과제가 쌓여갈 때마다 할 수 있다는 자신감이 생기실 것입니다. 쉬우니까 할 수 있다는 자신감이 아니고 어렵지만 할 수 있다는 자신감입니다. 모두 구현하지 못하더라도, 일부라도 발표를 할 수 있도록 합니다. 부담감도 성장의 동력으로 쓸 수 있도록 여러분을 이끌겠습니다.또한 막연하게 여러분에게 어떤 결과물을 요구하는 것이 아니라 명확한 가이드를 통해 여러분이 갖춰야 될 구성 요소에 대해 예시를 통해 말씀드립니다. 예를 들어 발표는 대부분 Readme 파일로 진행을 하는데요. 아래 샘플 레포를 통해 어떤 식으로 구성하는지 감을 잡을 수 있습니다.링크 : https://github.com/weniv/project_sample_repo과제 발표와 동시에 코드 리뷰를 진행합니다. 실제 실무에서 받는 코드 리뷰 절차 등에 대해서도 설명해드리고 어떤 코드가 좋은 코드인지에 대해서도 여러 사례를 기반으로 얘기해드립니다. 코딩 테스트는 현재 출제되는 문제의 유형 분석, 문제의 출제 빈도, 기업별로 분석해둔 코딩 테스트 유형 등 다양한 데이터 기반 자료를 토대로 여러분들에게 명확한 가이드와 전략을 드리도록 하겠습니다.위니브에서는 그동안 여러 권의 알고리즘 책을 출판했으며, 제주 알고리즘 베이스캠프(https://jejualcam.co.kr/), 카카오와 함께하는 알고리즘 산책 등 다양한 행사를 진행해 왔습니다. 또한 알고리즘 테스트 서비스(https://pyalgo.co.kr/)도 운영하고 있는데요. 이러한 경험을 기반으로 여러분이 알고리즘에 보다 쉽게 다가갈 수 있도록 돕겠습니다.다만 코딩 테스트는 아쉽게도 왕도가 없습니다. 여러분이 매일매일 훈련하셔야 합니다.  4. 이력서 템플릿 제공과 리뷰, 코딩 테스트 대비저희가 한 해에 리뷰하는 이력서는 500건에서 700건 정도 됩니다. 이력서 검토 경험을 ‘신입개발자 이력서 작성 가이드’라는 책으로 집필하기도 했습니다.리뷰를 했던 데이터를 기반으로 희망 연봉에 따라 이력서를 검토해드립니다. 또한 희망 연봉에 따라 준비해야 하는 요건이 다를 수 있습니다. 예를 들어 고액 연봉을 희망한다면 코딩 테스트를 준비해야 하지만 연봉 3200 미만에서는 코딩 테스트가 거의 없습니다. 전략적으로 어떤 포지션을 취해야 하는지도 함께 알려드립니다.이력서를 노션으로 많이 작성하는데요. 실무자가 어떤 것을 선호하는지 모르기 때문에 다양한 양식을 준비해둘 필요가 있습니다. 생각보다 Notion 이력서를 좋아하지 않는 곳도 많습니다. 저희는 PDF양식과 노션 양식을 모두 제공해드립니다. PDF 양식은 아래 링크에서 무료로 확인하실 수 있습니다.https://paullabworkspace.notion.site/Figma-bfa32213fc244db9b31bb8486a479ee6?pvs=4 5. ICT 교육에 대한 치열한 고민캠프를 진행하게 되면 우리끼리 간혹 하는 얘기가 있습니다. ‘이 교육은 우리밖에 못한다’라는 얘기인데요. 이유는 우리는 ICT 교육에 대해, 한 과목 한 과목에 대해 치열하게 파고들고 회의하여 적재적소에 학습요소를 배치할 수 있는 그룹이기 때문입니다. 또한 단순히 교육의 퀄리티를 고민하는 것이 아니라 교육을 넘어 여러분에 이력에 무엇이 들어가야 좋을지, 이력서는 어떻게 써야 하는지 실질적인 컨설팅을 병행할 수 있는 그룹이기 때문에 그렇습니다. 우리는 여러분의 취업과 성장에 진심인 그룹입니다.우리의 방식이 모든 사람에게 맞는다는 생각은 가지고 있지 않습니다. 비교해보시고, 분석해보시고 선택해주시길 바랍니다.

백엔드백엔드웹개발파이썬장고PythonDjangoAI서비스인공지능머신러닝프레임워크

DJANGO_1

※파이썬 가상환경을 구축한 상황이라 가정하고 진행하겠습니다 (가상환경 구축은 나중에 추가 정리해서 올리겠습니다.)   Visual Studio Code로 진행했으며 cmd 터미널 환경에서 Django-admin startproject config .  명령어를 사용해주면 장고가 시작됩니다. (config 옆에 있는 . 까지 포함해야 합니다.) 장고파일을 만든 후 python manage.py startapp [앱이름] 명령어를 사용하면 작업할 앱을 만들수 있습니다.    오늘 Django_1정리는 url분리와 template 분리에 대해 정리하겠습니다. 먼저 앱을 생성해준 후, django를 만들때 생성된 config파일로 이동해줍니다. 그럼 config파일 내부에 urls.py파일을 확인할 수 있을겁니다.  urls.py에서 경로를 설정해주면 됩니다. urlpattern설정하는 방법에는 절대경로와 상대경로의 방법이 있습니다. 절대경로는 /로 시작하면 /최상위폴더/하위폴더/하위폴더...순으로 작성해주며 되고 상대경로는 현재폴더/연결할 파일...순으로 찾아가는 경로입니다.  urlpatterns = [     path('admin/', admin.site.urls), ] 위 코드를 살펴보면 url코드가 '주소/admin'인 url에 접속하게 되면  admin.site.urls의 화면을 불러온다고 생각하면 될꺼 같습니다.  저는 아래와 같이 경로를 설정해주겠습니다. urlpatterns = [     path('admin/', admin.site.urls),     path('prac/',views.index) ] 위 경로를 설정해주기 위해서는  from prac import views 코드를 작성해줘서 prac파일의 views를 가져온다고 설정해주어야 합니다. 그럼 이와같이 작성이 끝나면 prac앱의 views파일로 이동해줍니다.  혹시 prac이 어디서 나왔냐하면, python manage.py startapp prac으로 prac이라는 앱을 생성해준겁니다. views로 이동하게 되면 처음 url경로를 설정해줄때 views.index 즉 views파일의 index를 호출하게 설정해주었는데 아마 아직 아무것도 작성해주지 않아 index함수가 없는 상태일껍니다.  그럼 def index로 함수를 만들어줍니다. def index(request):     return render(request, "prac/index.html") 저는 index함수를 이렇게 해줬습니다. 일단 설명하기 앞서 render에 대해 잠시 설명하셌습니다. render은 template 함수를 사용할 떄 사용하는 함수입니다. 그럼 또 template는 무엇이냐 하면,  재사용이 가능한 파일로써, views에서 데이터를 받아 동적으로 치환해서 사용합니다. (Django의 정리가 끝나면 마지막에 용어정리를 한번 하도록 하겠습니다.) template이라는 폴거를 만들어 앱과 똑같은 이름의 prac이라는 폴더를 template하위 폴더로 만들어주고 파일을 만들어줘서 관리해줍니다. 따라서 위에 작성한 코드를 다시 살펴보면 "prac/index.html"은 prac폴더의 index.html을 반환하라는 것을 의미합니다.   순서대로 프로젝트 작업 최상위 폴더에 template폴더를 생성하고 앱 이름과 똑같은 prac폴더를 순서대로 만듭니다. 만드는 방법은 그냥 아무폴더 클릭후 esc를 눌러준다음  2번째에 보이는 폴더만들기를 눌러주면 됩니다. 순서대로 만들어줬다면 prac폴더를 클릭후 index.html을 만들어줍니다. 이제는 다시 template을 사용하기 위해서는 다시 config파일의 settings.py를 수정해줘야 합니다. 약 53-54번째 줄을 확인해보면 TEMPLATES가 있는것을 확인할 수 있습니다. TEMAPLATES밑에 'DIRS':[]라고 되어 있을텐데 그 부분을  'DIRS': [BASE_DIR/'template'], 이렇게 수정해주면 됩니다. 쉽게 설명하자면 경로를 설정해준겁니다.    총 처음부터 어떻게 실행되는지 흐름을 정리하자면 모든 폴더와 파일이 세팅되었다는 가정하에 터미널에 서버 시작 명령어 python manage.py runserver을 쳐줍니다. (가상환경 상태에서 명령어를 사용해야되며 command 창에 입력해야됩니다. powershell에서는 안됩니다) 보면 빨간색으로 칠한 부분을 키보드의 ctrl을 누른채로 마우스 좌클릭을 해주면 창이 열립니다. /prac이라고 추가적으로 입력해주면  template/prac 폴더안에 생성한 index.html에 작성한 코드가 보이는 것을 확인할 수 있습니다.   처음에 이제 실행을 하게 되면, config폴더 안의 urls.py에 url주소를 맵핑해준것을 기억할 수 있습니다. prac/이라는 주소를 주었고 따라서 '주소/prac'이라는 url을 주게 되면 views.index를 호출하게 됩니다. 그럼 views.index는 어디에 있냐면 앱 생성 명령어로 통해 생성한 앱인 prac앱의 views로 이동하면 됩니다. 하지만 아직 index함수는 만들어주지 않았으니 새로이 만들어줘야합니다. def index...으로 생성해주고 render함수를 반환해줄수 있도록 합니다. 그러면 다시 views.index에서 prac/index.html로 보내게 됩니다. 그럼 다시 template/prac 순으로 만들어줬던 폴더에 있는 index.html이 호출이 됩니다. 따라서 최종적으로 사용자가 확인할 수 있는 화면은 index.html이며 사용자가             '주소/index'라는 url을 주게 되면 위의 순서대로 넘어와져 결국 index.html이 호출되는 것을 확인할 수 있습니다.    다음에는 테이블 생성으로 찾아뵙겠습니다.   ※제가 공부하면서 참고할려고 만든 블로그라 많이 미숙합니다. 혹시 제가 놓친부분이나 수정할 부분 댓글 남겨주시면 반영하겠습니다. 감사합니다.    

백엔드Djangopython파이썬장고

채널톡 아이콘