1 of 66

2 of 66

목차

  1. OT
  2. 세미나
  3. 개발 개요
  4. Git
  5. 과제 및 공지사항

중요

3 of 66

OT

4 of 66

운영팀 소개

김지호

  • 22-23 와장
  • 20기
  • 전기정보공학부 & 벤처경영 연합전공
  • 19년도 2학기 ~ 21년도 1학기까지 산업기능요원
  • iOS 개발자

5 of 66

운영팀 소개

박준영

22-23 부와장

19.5기

프론트(React) 개발자

안민규

19.5기

프론트(React) 개발자

고영현

18.5기

서버(Django) & 모바일(Flutter) 개발자

이민규

19.5기

서버(Django) 개발자

박신홍

19.5기

iOS 개발자

정대용

18.5기

서버(Django) 개발자

6 of 66

진행 계획

8월

9월

10월

11월

1월

12월

Seminar 0

8월 마지막 주

Seminar 1

9월 첫째 주

Seminar 2

9월 둘째 주

Seminar 3

9월 넷째 주

Seminar 4

10월 둘째 주

Seminar 5

11월 첫째 주

토이 프로젝트

프로젝트 팀빌딩

* 현재 대면 세미나를 위한 준비가 진행되고 있어, 구체적인 일정은 개강 전에 다시 공지드릴 예정입니다.

7 of 66

진행 계획 – Programmars 승격

참여

    • 모든 세미나에 참여해야 합니다.

과제

    • 각 세미나가 끝난 후 due date까지 과제를 스펙에 맞추어 제출해야 합니다.
    • 각 세미나의 최종 과제를 통과해야 합니다.

토이 프로젝트

    • 토이 프로젝트에 참여하여 프로젝트를 진행해야 합니다.
    • 이때 운영팀에서 참여도 및 협업 능력을 확인합니다.

8 of 66

Programmars 승격 이후

프로젝트 참여

    • 기존 프로젝트에 참여
      • SNUTT, 식샤, 스누보드 …
      • 죽은 프로젝트 되살리기
    • 신규 프로젝트
      • 팀빌딩, 아이디어 회의를 통한 새로운 프로젝트

9 of 66

루키 Repository

https://github.com/wafflestudio/seminar-2022

    • 일정, 수업 자료, 과제 등 승격 전까지 진행에 필요한 모든 정보가 이 Repository에 업로드됩니다.
    • 모든 질의응답도 이 Repository에서 진행됩니다.

10 of 66

질문 올리는 방법

https://github.com/wafflestudio/seminar-2022/issues/1

    • 위 링크를 참고하여, 질문은 이슈로 올려주세요.
    • 제출해주신 Github ID에 해당하는 계정을 triage 권한의 outside collaborator로 초대드렸습니다.

    • Issue 등록 live tutorial

11 of 66

목차

  1. OT
  2. 세미나
  3. 개발 개요
  4. Git
  5. 과제 및 공지사항

중요

12 of 66

세미나

13 of 66

Frontend 세미나장 소개

안중원

  • 컴퓨터공학부 재학
  • 와플스튜디오 19.5기

14 of 66

Frontend 세미나 소개

React

  • HTML, CSS, Javascript 기초
  • React 함수형 컴포넌트와 선언형 프로그래밍
  • 비동기와 HTTP

15 of 66

Backend(Django) 세미나장 소개

김찬욱

  • 2018-2021 토스
  • 2021-2022 데브시스터즈
  • 주로 Django, React.js 사용
  • 와플스튜디오 17-18 와장

16 of 66

Backend(Django) 세미나 소개

Django

  • Python 기반 가장 성숙한 Full-stack framework
  • Backend 일반적인 구조에 대해 익숙해질 수 있는 강의 (ORM, MVC, workers …)
  • 빠르게 개발하면서도 안정적인 CRUD API를 뽑아내는 데에 강점 (startups)

17 of 66

Backend(Spring) 세미나장 소개

강지혁

  • 와플스튜디오 17.5기
  • 와플스튜디오 21-22 부와장
  • 병특 중 (셀렉트스타)
  • 스프링 서버 개발 중

18 of 66

Backend(Spring) 세미나 소개

코틀린 스프링 MVC + JPA

  • Kotlin 사용
  • 객체 지향 프레임워크 (DI, PSA, IoC)
  • ORM (JPA)

19 of 66

Android 세미나장 소개

김상민

  • 2020-2022 VCNC (타다)
  • 와플스튜디오 19-20 와장, 16.5기
  • Android / iOS / Web Frontend / Server 잡부 개발자

20 of 66

Android 세미나 소개

Android

  • 안드로이드 UI 와 사용자 인터랙션은 어떻게 만드나요
  • 안드로이드 데이터는 어떻게 저장하나요
  • 안드로이드 어떻게 서버와 통신하나요
  • 안드로이드 어떻게 모듈화 하기 좋은 코드를 짜나요

21 of 66

iOS 세미나장 소개

한상현

  • 와플 15기
  • 컴퓨터공학부 17학번
  • 2020.09 ~ 현재 : 두나무 (업비트) iOS 개발자

22 of 66

iOS 세미나 소개

iOS

  • Swift + UIKit을 이용한 iOS 앱개발
  • AutoLayout에 대한 이해
  • RxSwift를 이용한 비동기, 함수형 프로그래밍
  • MVVM 기반 기본적인 구조 잡기
  • 서버 API와 통신하는 법
  • 좋은 코드를 짜는 방법론에 대하여

23 of 66

세미나 참여하기

OT 가장 아래쪽의 과제 섹션을 참고하여,

8월 24일 수요일 18:00까지 참여하고 싶은 세미나 3지망을 선택해주시면 됩니다.

24 of 66

첫 세미나 시간 공지

세미나

날짜 및 시간

대면/비대면 여부

React

8.27 (토) 오후 1시

대면

Django

9.6 (화) 오후 7시

대면

Spring

9.6 (화) 오후 7시 30분

대면

Android

8.25 (목) 오후 8시

대면

iOS

9.6 (화) 오후 7시 30분

대면

  • 모든 대면 세미나는 비대면 투트랙으로 진행될 예정입니다.
  • 다만, 상황에 따라 변동될 수 있다는 점 안내 드립니다.
  • 장소는 강남권의 세미나실을 대여할 예정이며, 추후에 안내드릴 예정입니다.

25 of 66

세션 별 특징 및 유의사항

각 세미나의 정원은 40명입니다.

세미나는 기본적으로 대면 + 비대면 투 트랙이며, 장소 대여 등의 상황에 따라 일부 비대면으로 전환될 수 있습니다.

가수요조사 결과, 서버(백엔드)에 수요가 정원을 초과하였으며, 따라서 선착순에 의해 배정이 될 예정입니다.�인원이 적은 세미나일수록 세미나장 분들이 직접 피드백을 해주시는 등 수업의 질이 높을 수 있다는 점 참고바랍니다.

서버(백엔드)는 데이터 베이스 및 (일부) 운영체제까지 알아야 하기 때문에, 과제 채점 및 Programmers 승격 기준이 다른 세션들에 비해 까다롭게 진행될 예정입니다.

iOS 세미나는 mac OS를 필요로 합니다. (맥북, 아이맥 등)

로드가 꽤 있는 만큼, 본인이 가장 즐겁게 할 수 있는 세미나를 선택하는 것이 제일 좋습니다.

26 of 66

Q&A

27 of 66

목차

  1. OT
  2. 세미나
  3. 개발 개요
  4. Git
  5. 과제 및 공지사항

중요

28 of 66

개발 개요

- 설명 편의를 위해 약간의 왜곡이 들어가 있을 수 있는 점 참고해주세요.

29 of 66

개발자 란?

30 of 66

컴퓨터 하나만 있으면 서비스를 만들어 낼 수 있는 사람들

31 of 66

웹 / 앱 개발

32 of 66

Client(Frontend)

사용자와 직접 소통

유저의 지시에 따라 서버에 데이터를 요청하며, 이를 가공하여 사용자에게 전달

브라우저, 모바일 앱 등

33 of 66

Server(Backend)

클라이언트의 요청을 받아서 데이터를 가공하는 등의 처리

여러 클라이언트와 통신이 이루어짐

34 of 66

Database

실제 데이터를 저장하는 저장소

저장소에 접근하는 방법까지 포함하는 용어

35 of 66

예시

댓글 입력 시

유저 -> 클라이언트: 댓글창에 댓글을 달고 입력 버튼을 누름

클라이언트 -> 서버: 123번 유저가 10292번 글에 ~~라는 댓글 작성 요청

서버 -> DB : 댓글 테이블에 이 댓글 데이터를 추가

게시글 확인 시

유저 -> 클라이언트: 게시글을 클릭

클라이언트 -> 서버: 해당 게시글에 표시해야 할

데이터 요청(댓글, 좋아요 수 등)

서버 -> DB -> 서버: 요청에 필요한 데이터를 가져와서 가공

서버 -> 클라이언트: 요청된 데이터를 전달

36 of 66

HTTP

HyperText Transfer Protocol

서버와 클라이언트가 데이터를 주고받기 위해 정의한 규칙

Http에 의해 서버는 클라이언트가 요청할 때에 데이터를 전송

Response: Status code + header + body

Request : request method + URL + header + body

37 of 66

API

Application Programming Interface

데이터를 어떤 식으로 요청해야 하는지, 요청한 데이터가 어떤 식으로 제공되는지에 대한 규격

프로그램들이 서로에 대해 알지 못해도 소통할 수 있게 한다

Ex) 배달 앱에서 음식을 주문

  • 메뉴에 있는 음식만 주문할 수 있다
  • 집주소와 주문자 전화번호, 돈을 지불하면 주문 요청이 들어간다
  • 주문이 완료되면 음식이 집주소로 배달된다

서버 개발자: 협의된 api를 구현

클라이언트 개발자: 제공되는 api를 사용

38 of 66

Q&A

39 of 66

목차

  1. OT
  2. 세미나
  3. 개발 개요
  4. Git
  5. 과제 및 공지사항

중요

40 of 66

Git

- 설명 편의를 위해 약간의 왜곡이 들어가 있을 수 있는 점 참고해주세요.

41 of 66

Git이란

분산 버전 관리 시스템

효율적인 협업을 위해서 반드시 필요

어렵지만, 하나씩 하나씩 알아보자

42 of 66

버전 관리의 필요성

파일 이름 관리의 어려움

파일이 바뀌어 온 역사를 기록해 둔다면?

43 of 66

Repository & Commit

Commit: 코드 수정 내역 묶음

하나의 특징, 기능을 하는 변화를 묶기

git commit –m “Revise bug report syntax”

Repository: 하나의 프로젝트에 대한 저장소

44 of 66

Add

test1.py

test2.py

test3.py

Add: 역사를 기록할 파일을 선택하는 과정

git add test1.py�git add test2.py

Stage

45 of 66

Add 예시

46 of 66

분산?

분산 시키려면? 원격 저장소!

분산을 시키면?�서버에서 문제가 발생해도, 클라이언트에서 원상 복구가 가능하다.

여러 명이 동시에 개발을 할 수 있다.

로컬 오프라인 환경에서도 작업이 가능하다.

server

47 of 66

분산?

server

Push:

commit된 변경사항들을 원격 저장소에 업로드

git push (origin master)

Pull:

원격저장소의 commit들을 로컬로 받아 옴

git pull (origin master)

48 of 66

원격 저장소

원격 저장소를 만드는 방법? GitHub, GitLab …

원격 저장소에서도 마찬가지로 레포지토리를 생성할 수 있다.

49 of 66

branch

협업을 할 때 역사가 제대로 기록이 되려면?

여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 할 때에 각각 서로 다른 버전의 코드를 생성

브랜치를 만들어 독립적인 작업 영역 생성

다른 사람의 작업에 영향을 받지 않고 독립적으로 특정 작업을 수행

50 of 66

다양한 예시 - 1

My GitHub

My Computer

test1.py

ABC Repository

51 of 66

다양한 예시 – 1 : Clone

My GitHub

My Computer

git clone https://github.com/wafflestudio/waffle-recruit.git

test1.py

ABC Repository

52 of 66

다양한 예시 - 2

My GitHub

My Computer

test1.py

ABC Repository

53 of 66

다양한 예시 – 2 : remote

My GitHub

My Computer

git remote add origin https://github.com/wafflestudio/waffle-recruit.git

test1.py

ABC Repository

54 of 66

다양한 예시 - 3

Waffle Studio GitHub

My GitHub

test1.py

ABC Repository

55 of 66

다양한 예시 – 3 : Fork

Waffle Studio GitHub

My GitHub

test1.py

ABC Repository

56 of 66

다양한 예시 - 4

Waffle Studio GitHub

My GitHub

test1.py

test1.py (updated)

ABC Repository

ABC Repository

57 of 66

다양한 예시 – 4 : Pull Request

Waffle Studio GitHub

My GitHub

test1.py

test1.py (updated)

- 자신이 만든 branch를 merge하기 전에 변경사항을 확인 받는 과정

- 팀 프로젝트에서는 master branch에 바로 merge하는 것을 지양하고 PR을 통해 변경점을 공유해야 함

ABC Repository

ABC Repository

58 of 66

마지막 예시 – 과제 제출하기

Waffle Studio GitHub

My GitHub

seminar-list.md

My Computer

1

2

4

5

3

Seminar-2022 Repository

59 of 66

Q&A

60 of 66

목차

  1. OT
  2. 세미나
  3. 개발 개요
  4. Git
  5. 과제 및 공지사항

중요

61 of 66

과제 : 참여할 세미나 결정하기

앞서 설명드린 pull request를 이용하여, 참여하실 세미나를 수합할 예정입니다.

62 of 66

과제 : 참여할 세미나 결정하기

스펙

  • 과제 링크: https://github.com/wafflestudio/seminar-2022/blob/main/seminar-list.md
  • 본인의 이름 및 github id에 해당하는 line을 변경한다.
  • Seminar-2022 repository에 자신이 참여할 세미나에 대한 내용을 추가한 Pull Request를 올린다.
  • repository를 fork하여 수정하고 pull request를 올리는 방식으로 한다.
  • Pull Request의 제목은 (본인 이름) (1지망 세미나) 신청합니다 로 한다. (예: 김지호 react 세미나 신청합니다)
    • 신청하실 세미나는 ‘react’ | ‘Django’ | ‘Spring’ | ‘android’ | ‘iOS’ 입니다.
  • 참여하실 세미나의 Label을 달아 주세요.
  • Due date: 8/24 18:00:00

주의

  • 각 세미나의 정원이 정해져 있기 때문에, 정원 이내에서 PR 올린 순서로 선착순 모집을 합니다.
  • 공정성을 위해 PR은 22일 월요일 정오(12:00)~25일 수요일 오후 6시(18:00) 사이에 생성한 것만 확인합니다.
  • 해당 md 파일안에 본인의 행이 있는지 확인해주세요. 만약 없다면 오늘 자정전까지 루키 카톡방에 말씀해주셔야 합니다.
  • 잘못된 PR은 받지 않습니다. 본인의 행만 수정했는지, 남들의 행은 수정하지 않았는지 확인해주세요!
  • 질문이 있으시다면, 이번 과제에 한해서는 루키 카톡방에서 진행하겠습니다. 현재 깃허브 레포 초대가 진행되고 있으니�이슈는 세미나부터 만들어주시면 감사하겠습니다!

63 of 66

Live Tutorial

64 of 66

공지사항

세미나가 결정되는 대로, 루키분들을 와플스튜디오 20.5기 세미나 Slack에 초대할 예정입니다.

  • 와플스튜디오는 대부분의 인프라가 Slack을 바탕으로 이루어지기 때문에, Slack에 미리 익숙해지실 필요가 있습니다.

Rookies 회비를 납부해주세요!

  • 회비는 서버 비용, 대면 강의실 대여 비용 등 와플스튜디오의 활동 지원비로 사용될 예정입니다.
  • 회비 사용 내역은 공개 구글 스프레드 시트를 통해 투명하게 관리됩니다.
  • 아래 와플스튜디오 계좌로 회비 20,000원을 송금 후, 송금 확인용 구글 폼을 작성해주세요. (구글 폼 링크는 루키 카톡방에 공지될 예정입니다.)
  • 우리은행 1005-404-194527 와플스튜디오

65 of 66

Q&A

66 of 66

자료 제작

v1: by @Hank-Choi

v2: by @woohm402

v3: by @hanan-nana, @shp7724