목차
중요
OT
운영팀 소개
김지호
운영팀 소개
박준영
22-23 부와장
19.5기
프론트(React) 개발자
안민규
19.5기
프론트(React) 개발자
고영현
18.5기
서버(Django) & 모바일(Flutter) 개발자
이민규
19.5기
서버(Django) 개발자
박신홍
19.5기
iOS 개발자
정대용
18.5기
서버(Django) 개발자
진행 계획
8월
9월
10월
11월
1월
12월
Seminar 0
8월 마지막 주
Seminar 1
9월 첫째 주
Seminar 2
9월 둘째 주
Seminar 3
9월 넷째 주
Seminar 4
10월 둘째 주
Seminar 5
11월 첫째 주
토이 프로젝트
프로젝트 팀빌딩
* 현재 대면 세미나를 위한 준비가 진행되고 있어, 구체적인 일정은 개강 전에 다시 공지드릴 예정입니다.
진행 계획 – Programmars 승격
참여
과제
토이 프로젝트
Programmars 승격 이후
프로젝트 참여
루키 Repository
https://github.com/wafflestudio/seminar-2022
질문 올리는 방법
https://github.com/wafflestudio/seminar-2022/issues/1
목차
중요
세미나
Frontend 세미나장 소개
안중원
Frontend 세미나 소개
React
Backend(Django) 세미나장 소개
김찬욱
Backend(Django) 세미나 소개
Django
Backend(Spring) 세미나장 소개
강지혁
Backend(Spring) 세미나 소개
코틀린 스프링 MVC + JPA
Android 세미나장 소개
김상민
Android 세미나 소개
Android
iOS 세미나장 소개
한상현
iOS 세미나 소개
iOS
세미나 참여하기
OT 가장 아래쪽의 과제 섹션을 참고하여,
8월 24일 수요일 18:00까지 참여하고 싶은 세미나 3지망을 선택해주시면 됩니다.
첫 세미나 시간 공지
세미나 | 날짜 및 시간 | 대면/비대면 여부 |
React | 8.27 (토) 오후 1시 | 대면 |
Django | 9.6 (화) 오후 7시 | 대면 |
Spring | 9.6 (화) 오후 7시 30분 | 대면 |
Android | 8.25 (목) 오후 8시 | 대면 |
iOS | 9.6 (화) 오후 7시 30분 | 대면 |
세션 별 특징 및 유의사항
각 세미나의 정원은 40명입니다.
세미나는 기본적으로 대면 + 비대면 투 트랙이며, 장소 대여 등의 상황에 따라 일부 비대면으로 전환될 수 있습니다.
가수요조사 결과, 서버(백엔드)에 수요가 정원을 초과하였으며, 따라서 선착순에 의해 배정이 될 예정입니다.�인원이 적은 세미나일수록 세미나장 분들이 직접 피드백을 해주시는 등 수업의 질이 높을 수 있다는 점 참고바랍니다.
서버(백엔드)는 데이터 베이스 및 (일부) 운영체제까지 알아야 하기 때문에, 과제 채점 및 Programmers 승격 기준이 다른 세션들에 비해 까다롭게 진행될 예정입니다.
iOS 세미나는 mac OS를 필요로 합니다. (맥북, 아이맥 등)
로드가 꽤 있는 만큼, 본인이 가장 즐겁게 할 수 있는 세미나를 선택하는 것이 제일 좋습니다.
Q&A
목차
중요
개발 개요
- 설명 편의를 위해 약간의 왜곡이 들어가 있을 수 있는 점 참고해주세요.
개발자 란?
컴퓨터 하나만 있으면 서비스를 만들어 낼 수 있는 사람들
웹 / 앱 개발
Client(Frontend)
사용자와 직접 소통
유저의 지시에 따라 서버에 데이터를 요청하며, 이를 가공하여 사용자에게 전달
브라우저, 모바일 앱 등
Server(Backend)
클라이언트의 요청을 받아서 데이터를 가공하는 등의 처리
여러 클라이언트와 통신이 이루어짐
Database
실제 데이터를 저장하는 저장소
저장소에 접근하는 방법까지 포함하는 용어
예시
댓글 입력 시
유저 -> 클라이언트: 댓글창에 댓글을 달고 입력 버튼을 누름
클라이언트 -> 서버: 123번 유저가 10292번 글에 ~~라는 댓글 작성 요청
서버 -> DB : 댓글 테이블에 이 댓글 데이터를 추가
게시글 확인 시
유저 -> 클라이언트: 게시글을 클릭
클라이언트 -> 서버: 해당 게시글에 표시해야 할
데이터 요청(댓글, 좋아요 수 등)
서버 -> DB -> 서버: 요청에 필요한 데이터를 가져와서 가공
서버 -> 클라이언트: 요청된 데이터를 전달
HTTP
HyperText Transfer Protocol
서버와 클라이언트가 데이터를 주고받기 위해 정의한 규칙
Http에 의해 서버는 클라이언트가 요청할 때에 데이터를 전송
Response: Status code + header + body
Request : request method + URL + header + body
API
Application Programming Interface
데이터를 어떤 식으로 요청해야 하는지, 요청한 데이터가 어떤 식으로 제공되는지에 대한 규격
프로그램들이 서로에 대해 알지 못해도 소통할 수 있게 한다
Ex) 배달 앱에서 음식을 주문
서버 개발자: 협의된 api를 구현
클라이언트 개발자: 제공되는 api를 사용
Q&A
목차
중요
Git
- 설명 편의를 위해 약간의 왜곡이 들어가 있을 수 있는 점 참고해주세요.
Git이란
분산 버전 관리 시스템
효율적인 협업을 위해서 반드시 필요
어렵지만, 하나씩 하나씩 알아보자
버전 관리의 필요성
파일 이름 관리의 어려움
파일이 바뀌어 온 역사를 기록해 둔다면?
Repository & Commit
Commit: 코드 수정 내역 묶음
하나의 특징, 기능을 하는 변화를 묶기
git commit –m “Revise bug report syntax”
Repository: 하나의 프로젝트에 대한 저장소
Add
test1.py
test2.py
test3.py
Add: 역사를 기록할 파일을 선택하는 과정
git add test1.py�git add test2.py
Stage
Add 예시
분산?
분산 시키려면? 원격 저장소!
분산을 시키면?�서버에서 문제가 발생해도, 클라이언트에서 원상 복구가 가능하다.
여러 명이 동시에 개발을 할 수 있다.
로컬 오프라인 환경에서도 작업이 가능하다.
server
분산?
server
Push:
commit된 변경사항들을 원격 저장소에 업로드
git push (origin master)
Pull:
원격저장소의 commit들을 로컬로 받아 옴
git pull (origin master)
원격 저장소
원격 저장소를 만드는 방법? GitHub, GitLab …
원격 저장소에서도 마찬가지로 레포지토리를 생성할 수 있다.
branch
협업을 할 때 역사가 제대로 기록이 되려면?
여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 할 때에 각각 서로 다른 버전의 코드를 생성
브랜치를 만들어 독립적인 작업 영역 생성
다른 사람의 작업에 영향을 받지 않고 독립적으로 특정 작업을 수행
다양한 예시 - 1
My GitHub
My Computer
test1.py
ABC Repository
다양한 예시 – 1 : Clone
My GitHub
My Computer
git clone https://github.com/wafflestudio/waffle-recruit.git
test1.py
ABC Repository
다양한 예시 - 2
My GitHub
My Computer
test1.py
ABC Repository
다양한 예시 – 2 : remote
My GitHub
My Computer
git remote add origin https://github.com/wafflestudio/waffle-recruit.git
test1.py
ABC Repository
다양한 예시 - 3
Waffle Studio GitHub
My GitHub
test1.py
ABC Repository
다양한 예시 – 3 : Fork
Waffle Studio GitHub
My GitHub
test1.py
ABC Repository
다양한 예시 - 4
Waffle Studio GitHub
My GitHub
test1.py
test1.py (updated)
ABC Repository
ABC Repository
다양한 예시 – 4 : Pull Request
Waffle Studio GitHub
My GitHub
test1.py
test1.py (updated)
- 자신이 만든 branch를 merge하기 전에 변경사항을 확인 받는 과정
- 팀 프로젝트에서는 master branch에 바로 merge하는 것을 지양하고 PR을 통해 변경점을 공유해야 함
ABC Repository
ABC Repository
마지막 예시 – 과제 제출하기
Waffle Studio GitHub
My GitHub
seminar-list.md
My Computer
1
2
4
5
3
Seminar-2022 Repository
Q&A
목차
중요
과제 : 참여할 세미나 결정하기
앞서 설명드린 pull request를 이용하여, 참여하실 세미나를 수합할 예정입니다.
과제 : 참여할 세미나 결정하기
스펙
주의
Live Tutorial
공지사항
세미나가 결정되는 대로, 루키분들을 와플스튜디오 20.5기 세미나 Slack에 초대할 예정입니다.
Rookies 회비를 납부해주세요!
Q&A
자료 제작
v1: by @Hank-Choi
v2: by @woohm402
v3: by @hanan-nana, @shp7724