로그인

이 강의는 함수형 프로그래밍이 처음인 개발자들을 대상으로, 기존의 사고 체계를 조금씩 바꿔나가는 데에 도움을 드리고자 이론과 실습으로 구성한 강의입니다.

오픈기념 할인 중 ! (~2월 24일까지)

위 강의 소개 동영상을 통해 어떤 내용을 배우게 될지 미리 파악하세요.

배우는 것들

함수형 프로그램에 대한 관심이 높아지고 있는 요즘, 함수형 프로그래밍은 과연 무엇인지 그 개념부터 시작하여 실제 프로젝트를 진행하고, 실무까지 익힐 수 있도록 구성된 강좌입니다. 기존 소스코드를 함수형 프로그래밍으로 변경하는 방법을 배우면서, 자연스럽고 실제적인 함수형 프로그래밍을 익힐 수 있도록 진행됩니다. 최종적으론 UI를 적용하는 iOS앱을 개발하여, 설계하는 방법과 실무적으로 사용되는 방법을 익힐 수 있습니다.

파트1 : 함수형 프로그래밍의 개념
파트2 : 자주 사용되는 기술을 실습을 통해 익힐 수 있도록 구성
파트3 : 이미 작성된 프로그램을 함수형 프로그래밍으로 변경해보기
파트4 : UI를 적용하는 iOS앱 개발


함수형 프로그래밍, 스위프트로 시작하기 – Swift FP

이 강의는 FP(Functional Programming, 함수형 프로그래밍)에 대해 아무리 이해하려 노력해도 그 근본 체계 자체가 너무나도 어색하고, OOP와 너무 달라 불편하기만 하고, 어렵다고만 느껴지는 분들을 위해 만들었습니다.

FP 자체가 처음인 분들을 위한 특강이며, 기존의 사고 체계를 조금씩 바꿔나가는 데에 도움을 드리고자 이론과 실습으로 구성한 강의입니다.

  • 이론중심이 아니라 사례 중심
  • 어려운 개념이나 용어설명보다는 직접적인 코드로 설명
  • 실습형 과정으로 직접 타이핑 하면서 익힐 수 있도록 구성
  • 페어 프로그래밍 방식으로 진행하여 함수형 사고와 프로그래밍 과정 학습이 가능
  • 함수형으로 설계부터 UI앱 구현까지 진행되는 프로젝트를 포함

  • 진행환경 : Mac OS, XCode 9 이상
  • 선수지식 : Swift 4.x
이제는 많은 개발자들이 배우고 싶어하는 함수형 프로그래밍

최근 몇 년간 함수형 프로그래밍, Functional Programming(FP)에 대한 관심이 무척이나 높아졌습니다. 각종 분야의 밋업이나 세미나에 갔을 때 FP에 대해 논하는 것은 흔한 풍경이 되었습니다. 특히 기존 코드를 FP 방식으로 리팩토링하는 모습을 보여주며, 이 좋은 것을 널리널리 쓰라는 이야기도 많이 들립니다.

하지만 많은 개발자들이 객체지향 프로그래밍 패러다임에 익숙한 상황에서, 새로운 패러다임으로 넘어가는 데에는 많은 노력이 필요합니다. 이것은 어떤 새로운 언어를 배우고 그 문법을 익혀서 쓰는 것과는 다른 이야기입니다.

함수형 프로그래밍 패러다임으로 넘어가는 것은 왜 어려울까?

한 프로그래머가 가진 인식 체계(패러다임)은 프로그램의 구조를 설계하는 것 부터 소스코드를 짜기까지 모든 과정에 깊게 관여합니다. 이 프로그래머가 객체지향 프로그래밍 패러다임 속에서 평생을 프로그래밍 해온 사람이라고 가정할 때, 함수형 프로그래밍을 새롭게 배우는 데 있어서 이런 어려움이 따를 수 있습니다:

  • 변수의 값을 변경하지 않는다는 것 자체가 이상하게 느껴집니다. 조금 더 개발자 친화적으로 표현하자면, state 없이 프로그래밍을 하라는 설명 자체가 너무나도 어색합니다.
  • FP에서 등장하는 Currying 이라는 개념도 이상합니다. 함수를 만드는 함수를 만드는 함수를 만든다는 것(오타 아님)이 도대체 무슨 말인지 이해가 되질 않습니다.
  • 데이터를 바꾸지 않으면서 프로그램의 행동을 제어한다는 것이 이상합니다. 그냥 다 이상하게 느껴집니다.

 도움이 되는 분들

  • Swift를 알고 계신 분
  • 함수형 프로그래밍을 배우고 싶으신 분
  • 함수형 프로그래밍을 배워봤으나 실제 활용을 못하시는 분
  • 함수형 프로그래밍을 실무에 적용하고자 하시는 분
  • 동시성, 비동기성이 중요한 서비스를 개발하려고 하는 분
  • 간결한 소스코드를 쓰고 싶어서 고민하는 분
  • FP 학습에 관심있는 누구나

 지식공유자 소개

개발자 송치원

15년 경력의 모바일 개발자.
모바일을 무척이나 사랑하고,
2008년 부터 iOS 실무를 해왔습니다.

  • iOS 밋업 ‘let us: Go!’
    2017 가을, 2018봄, 여름 발표자. 주제는 모두 FP 관련!
  • 임베디드/모바일 소프트웨어 프로그래머
  • 임베디드/응용 프로그래밍/Arduino/3D Printer 강사
  • 고용노동부 스펙초월 멘토스쿨 멘토
  • 임베디드소프트웨어 산업협회 위원
  • 블로그GitHub
강의에 추가되었으면 하는 내용이 있거나, 질문이 있으신 경우에는 ‘질문’ 란에 올려주시길 바랍니다.
이 강의는 송치원 강사와 프로그래머스의 파트너십을 통해 제작된 강의입니다.

강좌 평가

5

1 개의 수강평
  • 5 점1
  • 4 점0
  • 3 점0
  • 2 점0
  • 1 점0
  1. remember7448의 프로필 사진

    FP의 개념과 실제 예제를 통해 설명하여 이해가 쉬운 강좌!

    5

    FP의 개념 설명 보다 쉽게 해주셨고 리팩토링 과정을 보여주면서 설명해주셔서 보다 이해하기가 쉬웠습니다.
    또한 특정 사례를 통해 FP로 설계 및 구현해주는 과정으로 실무에 좀 더 쉽게 적용 할 수 있을것 같습니다.^^
    좋은 강좌 감사드리며, 앞으로도 많은 강좌 부탁드립니다.

강좌 교육과정

파트1. 함수형 프로그래밍 소개
강의 소개학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 미리보기 00:02:57
프로그래밍 패러다임학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 미리보기 00:02:03
FP가 재조명 받는 이유학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 미리보기 00:02:22
FP에 대한 오해들학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 미리보기 00:02:20
파트2. [실습] 함수를 다루는 기술들
Pure Function학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 미리보기 00:00:00
Pure function – solution학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
Higher-Order Function학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
Higher-order function – solution학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
Composition학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
Composition – solution학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
Currying학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
Currying- solution학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
Async Result학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
파트3. [리팩토링/라이브코딩] 총 3개의 프로그램을 non-FP에서 FP로
페어 프로그래밍 가이드학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
FizzBuzz (non-FP)학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
FizzBuzz(FP) – 1학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:05:33
FizzBuzz(FP) – 2학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:11:54
Low-High (non-FP)학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
Low-High (FP) -1학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:12:10
Low-High (FP) – 2학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:06:42
Weather Forecast학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
Weather Forecast (FP) – 1학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:09:27
Weather Forecast (FP) – 2학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:02:13
파트4. [프로젝트] FP를 실무에 적용하기 위한 예제 프로젝트
프로젝트 개요학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
설계하기학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:03:33
프로젝트 구현(1)학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:10:55
프로젝트 구현(2)학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:06:44
UI 적용하기학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:11:19
강의 마무리학습을 원하시면 최상단 '배우기 버튼을 클릭해주세요' 00:00:00
  • 가격 옵션 +
  • 평생
  • 강좌 수료증
  • 29개 강의, 총 1 시간 30 분
  • 위시리스트

실시간 인기 강좌

우리는 성장기회의 평등을 추구합니다. 🎄

경제적, 시간적 제약없는 양질을 교육으로 누구나에게 성장 기회를 균등하게 주는 것. 그것이 우리의 목표입니다.

지식공유참여 고객센터
top
(주)인프랩 | 대표자:이형주 | TEL:070-4178-0406 | E-MAIL: course@inflearn.com | 사업자번호:499-81-00612
주소:성남시 분당구 삼평동 대왕판교로 645번길 12 경기창조경제혁신센터 8층 R19 | 개인정보보호책임자:이형주
통신판매업:2017-서울강남-01544 | ©INFLAB. ALL RIGHTS RESERVED