프로그래밍 공부 로드맵 - peulogeulaeming gongbu lodeumaeb

디자인 패턴 책은 [에릭 프리먼 , 엘리자베스 프리먼 , 케이시 시에라 , 버트 베이츠]의 [Head First Design Patterns: 스토리가 있는 패턴 학습법]를 추천한다.


5. 이제 언어도 배웠고 말하는 법도 배웠고 말을 잘하는 방법도 배웠다. 그나라의 문화를 제대로 알려면 이제 역사를 배울 차례다.

이론서적은 컴퓨터 구조, OS, 컴퓨터 네트워크 3가지 파트를 추천한다.


컴퓨터 구조:

[David A. Patterson, John L. Hennessy]의 [컴퓨터 구조 및 설계]


운영체제:

[아브라함 실버스카츠]의 [Operating System Concepts] 또는 


시간이 많다면 OS를 직접 만들어 보는 것도 추천한다. 컴퓨터 구조와 OS이론의 실기책이라고 할 수 있다.

[한승훈]님의 [IT EXPERT, 64비트 멀티코어 OS 원리와 구조 1권: OS 개발 60일 프로젝트] 1권 2권으로 나눠져있다.


컴퓨터 네트워크:

[진강훈]님의 [후니의 쉽게 쓴 시스코 네트워킹], [미즈구치 카츠야]의 [모두의 네트워크: 10일 만에 배우는 네트워크 기초]


6. 알고리즘은 개발자라면 시간 날때마다 틈틈이 해야할 기본소양이므로 항상 공부하도록 한다.


화이팅.


책을 고를 때는 이분의 블로그를 많이 참고를 했다.

https://www.sangkon.com/2016/02/10/good_books_for_dev/


----------------------------------------------------------------------------------------------------------------------------

예컨데 오늘 화면을 그리는 수업을 했다면, 화면을 내 생각대로 조금씩 바꿔보는 것이다. 함수 이름을 바꿔도 되고, UI의 위치를 수정해 보아도 좋다. 그 과정에서 검색도 조금씩 해보게 되는데 이게 실제 개발에 가까워지는 과정이다.

3. 프레임 워크 사용해서 간단한 포트폴리오 만들기

보통 프레임워크를 강의 등을 통해 배웠더라도 실제로 못 써먹는 경우가 상당히 많다.

이건 지식을 완전히 내것으로 하지 못했기 때문이다.

보통 들어서 아는 지식과 내 것인 지식은 큰 차이가 있는데,

들어서 아는 지식은 내가 떠올리려고 하면 잘 생각이 안나지만, 누가 말하면 이야기할 수 있다.

내 것인 지식은 누가 말안해도 쉽게 꺼내서 쓸 수 있는 걸 말한다.

한마디로 책이나 강의를 보지 않고 웹사이트, 앱, 서버를 만들 수 있는 단계를 말한다.

처음부터 이 단계에 도달하는 것은 어렵다. 따라서 아주 작은 프로젝트 (포트폴리오)부터 만드는 게 필요하다.

내가 웹을 배운다면 3페이지짜리 간단한 웹을 만들어보겠다. 로그인도 없고, 회원가입도 없다.

이 첫 웹페이지를 만들면 일단 아무데라도 호스팅을 해서 올려보겠다.

첫 웹사이트가 어떻게든 돌아가는 상태가 되면, 프로젝트 규모를 키워보자.

지도 기능을 넣어볼 수도 있고, 회원 가입 기능을 넣어볼 수도 있다.

이전에 3페이지를 만들었다면 이번에는 5~6페이지정도 만들어보자.

두번째 사이트가 만들어지면 세번째 사이트를 만들어보자.

이번에는 좀 더 과감하게 글쓰기나 검색 기능을 넣어볼 수 있다.

아니면 게시판 같은 걸 만들어보아도 좋다.

여기서 포인트는 작게 만들되 완성을 하고, 좀 더 크게 만드는 것이다.

이 과정을 통해 자연스럽게 지식이 내것이 되고, 개발 숙련도가 올라간다.

이 때 괜히 스케일을 엄청 크게 해서 좌절하지 말자.

여러분이 보는 서비스는 대게 많은 개발자들이 몇년씩 만든 것이다.

너무 기획에 힘주지 말고, 기존에 있는 디자인이나 서비스를 따라하는 걸 권한다.

보통 이 과정이 1~3개월 정도 걸린다. 컴퓨터 학원들은 여기까지 하고 끝나는 경우가 대부분이다.

혹은 2번째 단계에서 끝나기도 한다. 일반적으로 3번째 단계까지 하면 취업은 그럭저럭 하는 편이다.

빠른 취업이 목표라면 3단계까지 빠르게 마무리하는 걸 권한다.

4.컴퓨터 공학 기초 지식 채우기

보통 프레임워크를 배우다보면 전반적인 컴퓨터 공학 지식을 얕게 배우게 된다.

프레임워크는 모두 다 컴퓨터 공학에 기초를 두고 있기 떄문이다.

프레임워크로 개발을 시작한 사람들은 2부류로 나뉘는데 하나는 적당히 돌아가는 코드에 만족하고, 막히면 스택 오버플로우를 뒤지는 스타일이다. 다른 하나는 원리까지 알고 해결하려는 스타일이다.

디자인 패턴을 알고 있다면 스프링 뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 보다 쉽게 학습할 수 있습니다. 또한, 보다 유연하고 재사용성이 뛰어난 객체 지향 소프트웨어를 개발할 수 있습니다.

단순 구현을 넘어서
더 좋은 코드를 만들고 싶은 모든 개발자에게

프로그래밍 공부 로드맵 - peulogeulaeming gongbu lodeumaeb

모든 개발자의 필독서GoF의 디자인 패턴

단순한 구현을 벗어나 더 좋은 코드를 만들고 싶다면 디자인 패턴에 대한 이해가 반드시 필요합니다.
모든 개발자에게 필독서로 추천하는 GoF의 저서 《디자인 패턴》과 23가지의 디자인 패턴.
현직 마이크로소프트 개발자가 현업에서 사용하는 코드로 모든 디자인 패턴을 알려드립니다.

프로그래밍 공부 로드맵 - peulogeulaeming gongbu lodeumaeb


  • 원활한 강의 수강을 위해서는 프로그래밍 언어와 객체 지향에 대한 이해가 필요합니다.
  • 자바와 스프링에 적용된 디자인 패턴을 소개 및 제공하고 있지만 특정 언어에 종속되는 내용은 아닙니다. 다른 언어를 사용하는 개발자도 쉽게 이해할 수 있는 내용이며, 이를 돕기 위해 강의에서 제공되는 코드는 간결하고 직관적으로 작성되었습니다.

디자인 패턴 학습이필요한 사람은?

프로그래밍 공부 로드맵 - peulogeulaeming gongbu lodeumaeb

기초 문법은 배웠는데
이제 뭘 해야 하지?

중급 개발자로 성장을
목표로 하고 있는
초급 개발자라면?

프로그래밍 공부 로드맵 - peulogeulaeming gongbu lodeumaeb

더 좋은 개발자가
되고 싶은데…

보다 근본적인 개발
방법론을 공부
해보고 싶다면?

프로그래밍 공부 로드맵 - peulogeulaeming gongbu lodeumaeb

개발 전반 메타 지식을
늘릴 수는 없을까?

어떤 지식을 학습하든
보다 빠르고 효율적인
학습을 원하신다면?

프로그래밍 공부 로드맵 - peulogeulaeming gongbu lodeumaeb

디자인 패턴?
배우고는 싶은데…

디자인 패턴 공부가
어렵고 실무와
멀게만 느껴진다면?

우리가 디자인 패턴을배워야 하는 이유

디자인 패턴은 애플리케이션 개발 시에 마주할 다양한 문제와 패턴을 모아놓은 지식의 산물입니다.
실제로 자바 개발자가 많이 사용하는 스프링 프레임워크에도 전략, 프록시, 어댑터 등 여러 다양한 디자인 패턴을 찾아볼 수 있습니다.
이 강의는 여러분께 디자인 패턴이 어렵고 추상적인 이론이 아니라 이미 우리 가까이에 있다는 것을 알게 해줄 것입니다.

프레임워크 학습에어려움을 겪는다면

스프링이나 리액트, NestJS와 같은 프레임워크에는 고도의 기술과 디자인 패턴이 집약되어있습니다.
프레임워크 학습에 어려움을 느꼈다면 디자인 패턴에 대한 이해가 선행되어야 합니다.
디자인 패턴을 알고 있다면 자바나 스프링뿐 아니라 여러 다양한 기술 및 프로그래밍 언어도 더 쉽게 학습할 수 있습니다.


코딩으로 학습하는GoF의 디자인 패턴

이 강의에서는 23개의 모든 디자인 패턴을 세 분류로 나누어 다루고 있습니다.
각 패턴이 해결하려는 문제, 적용하는 방법, 장단점, 실무에서 어떻게 적용되는지를 함께 살펴봅니다.

  • 싱글톤 패턴
  • 팩토리 메소드 패턴
  • 추상 팩토리 패턴
  • 빌더 패턴
  • 포로토타입 패턴

  • 어댑터 패턴
  • 브릿지 패턴
  • 컴포짓 패턴
  • 데코레이터 패턴

  • 책임 연쇄 패턴
  • 커맨드 패턴
  • 인터프리터 패턴
  • 이터레이터 패턴
  • 중재자 패턴
  • 메멘토 패턴

  • 옵저버 패턴
  • 상태 패턴
  • 전략 패턴
  • 템플릿 메소드 패턴
  • 방문자 패턴

현직 MS 개발자가 알려주는실무에서 쓰는 디자인 패턴

디자인 패턴을 보다 쉽게 이해하기 위해 자바 스프링에 적용된 모든 패턴의 예제를 제공합니다.
예제 코드는 Java로 작성되었으며, 본인에게 익숙한 프로그래밍 언어로 바꿔 실습 할 수 있도록 간결하고 직관적으로 작성했습니다.
지금 당장 실무에서 해당 패턴이 어떻게 사용되고 있는지 뿐만 아니라 그와 관련된 다양한 기술도 학습 할 수 있습니다.

강의가 나와 잘 맞을지궁금하신가요?

이 강의에서 다루는 23개의 패턴 중 세 가지 패턴(싱글톤 패턴, 프록시 패턴, 이터레이터 패턴)은 미리보기로 공개되어있습니다.
수강 전 강의를 미리 들어보신 후 이런 방식의 강의 진행이 본인에게 도움이 될지 판단해 주시기 바랍니다.


프로그래밍 공부 로드맵 - peulogeulaeming gongbu lodeumaeb

디자인 패턴 Design Patterns
아마존 기준 평점 4.7/5
객체 지향 소프트웨어 디자인 분야 1위
모든 개발자에게 권장하는 추천 도서 중 하나

GoF (Gang of Four)
《디자인 패턴》의 저자 4인
에릭 감마(Erich Gamma), 리차드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시데스(John Vlissides)

  • 해당 강의는 GoF의 저서 《디자인 패턴》에 소개된 23개의 디자인 패턴을 설명하고 있습니다. 개발자로서의 성장을 위해 《디자인 패턴》을 읽는 것을 권장하고 있으나, 강의 수강을 위해 책을 구매하실 필요는 없습니다.


예상 질문 Q&A

Q. 디자인 패턴은 이론적인 이야기 아닌가요? 실무에서 실제로 쓰이나요?

A. 우리가 사용하는 프레임워크들은 모두 디자인 패턴을 사용하고 있습니다. 예를 들어, 자바 개발자가 많이 쓰고 있는 스프링은 디자인 패턴의 집약체라고 말할 수 있을 정도로 다방면에 수많은 디자인 패턴이 적용되어 있습니다. 디자인 패턴을 잘 알고 있다면, 실무에 쓰이는 기술을 학습하는 데도 도움이 될 뿐 아니라 해당 패턴을 여러분 코드에 적용하는 것도 가능합니다. 이 강의에서 실제로 자바와 스프링에 적용된 디자인 패턴을 살펴보시기 바랍니다.

Q. 소스 코드는 어디서 다운 받을 수 있나요?

A. “강의 소스 코드”라는 수업에 소스 코드를 압축해서 올려두었습니다. 해당 코드를 여러분이 자주 사용하는 IDE, 이클립스 또는 인텔리J로 읽어 들여서 살펴볼 수 있습니다. 각 패턴마다 패턴 적용 이전과 이후를 패키지로 나눠놨으니, 강의를 수강하시고 나서 새로운 패키지를 만들고 직접 연습해 볼 수 있습니다.

Q. 자바 기초만 공부한 상태인데 이 강의를 수강해도 될까요?

A. 네, 자바 기초를 학습했다면 본 강의를 수강할 수 있습니다. 물론, 강의 중에 자바 기초에서는 다루지 않는 자바 기술이나 스프링 프레임워크 기술도 소개하지만 디자인 패턴을 학습하는 데 있어서 반드시 필요한 선수 지식은 아닙니다. 이 강의를 수강하시면 앞으로 자바나 스프링을 더 깊게 공부하는 데 많은 도움이 될 겁니다.