본문 바로가기

♤ 리더의 품격/리더의 서재

양파를 벗기듯 자바를 알아가는 '자바 웹프로그래밍 Next Step' 박재성

반응형

자바 웹프로그래밍 / 박재성 저

 

책 내용 미리보기

GitHub - slipp/jwp-book: 자바 웹 프로그래밍 학습을 위한 저장소 저장소 참고 문서, , 동영상 제공

:: SLiPP 저자 홈페이지 질문은 jwp-book 태그하기

 

한국 IT 개발자 직군 종류

 

웹 백엔드 개발자 : 자바, C#, 루비, 파이썬 등의 언어로 서버 쪽의 로직을 개발하는 역할, 데이터베이스도 잘 알아야 하며 프론트엔드 개발 작업도 담당하기도 한다.

 

웹 프론트엔드 개발자 : HTML/CSS, 자바스크립트를 주로 사용하며 디자이너와 협업을 하는 개발자. 센스와 끈기가 필요, jQuery, Angular.js, React.js와 같은 라이브러리도 잘 사용해야 하고, node.js를 통해 웹 백엔드 개발까지 가능하다.

 

모바일 앱 개발자 : 글을 쓰는 요즘은 자바 기반의 안드로이드 개발자와 오브젝티브 C(또는 Swift) 기반의 iOS 개발자가 이 범주에 속함. 안드로이드 수요가 많음

 

기타 : 시스템 프로그래머, 모바일 게임 개발자, 게임 서버 및 게임 클라이언트 개발자가 있는데 이 직군들은 상대적으로 높은 실력에 비해 구직이 어렵고 대우가 좋지 않아 해외 취업이 좋다.

 

비개발자 직군 : 중요한 비개발자 직군으로 DBA, 시스템 엔지니어, 빅데이터 전문가가 있다. 빅데이터 전문가가 최근 매우 유망하고, 시스템 엔지니어들도 클라우드가 나타난 이후로 과거에 비해 대우가 좋아진 듯하다. DBA는 실력과 연륜에 따라 연봉의 차이가 매우 크게 나는 직업으로 알려져 있다.

 

 

개발자에게 유용한 웹사이트들

 

google.com : 모르는 내용에 대한 검색은 구글을 활용. 네이버 지식인, 페이스북 그룹, 빙 등의 사용은 추천하지 않는다. 프로그래밍을 시작하는 개발자 중에 검색을 부끄러워 하는 친구들이 있는데 검색은 절대로 부끄러워 할 일이 아니고 개발자가 키워야 할 능력 중의 하나다.

 

stackoverflow.com : 개발자들의 지식인 같은 곳. 구글에서 프로그래밍 문제를 검색하면 상당부분 이쪽으로 연결됨. 직접 질문을 올리고 답변을 달아보길 권함.

 

github.com : 소셜 코딩이라고 부르기도 함. Git의 사용법과 함께 필수적으로 알아야 한다. Github 자체의 사용법을 배우는 게 좋다. 참고고 GitGithub은 전혀 다르다. 전자는 소스코드에 대한 버전관리용 도구, 후자는 Git을 지원하는 웹서비스.

 

slideshare.net : 다양한 기술을 예쁘고 쉽게 볼 수 있음. 깊이가 깊지 않은 경우가 많지만 매우 유용. 새로운 기술이 무엇인지 보고 싶을 때 우선적으로 검색할 것

 

trello.com : 칸반이라는 툴을 적용할 수 있는 도구이다. 프로젝트를 진행할 때 프로젝트 관리를 위한 협업 도구로 유용하다.

 

페이스북 그룹, 다양한 온라인 커뮤니티 : 페이스북을 통해 개발자들과 친구를 맺고 소통할 것

 

MOOC 사이트들 : 최근에는 다양한 MOOC 사이트들을 통해서 공짜로 공부할 수 있는 곳이 많아졌다. codecademy, codeschool, khanacademy 등을 통해 신규 언어를 직접 실습으로 익히길 권한다.

 

처음에는 쉽고 재미있는 프로그래밍 언어를 배우는 것이 좋다. 저자는 파이썬을 선호하는데 웹 개발자라면 자바스크립트와 루비, 모바일 개발자라면 파이썬을 배우라고 권한다.

나중에 실력이 조금 늘면 반드시 C 언어와 포인터에 대해 배우고, 모바일 개발자라면 Objective-C, Swift도 공부하길 추천한다. 마지막으로 내공이 쌓이면 함수형 프로그래밍 언어(Scala, Haskell, Rust )를 배우는 게 좋겠다. 웹 개발자에게 기본적으로 추천하는 언어는 HTML, CSS, 자바스크립트, 루비, 파이썬, 자바, 쉘 스크립트이다.

 

프론트 엔드는 HTML, CSS, 자바스크립트 학습에 집중하지만 웹 백엔드의 경우 자바, 루비, 파이썬, 자바스크립트와 같이 다양한 언어 기반으로 개발이 가능하다. 백엔드는 시작 언어를 추천하기 힘든데 그 이유는 목표에 따라 다르기 때문이다. 국내 큰 회사들은 자바를 사용하고, 스타트업의 경우 파이썬과 루비를 사용하는 경향이 강하다. 학습 비용 측면만 고려해보면 프론트엔드와 같은 언어인 자바스크립트를 웹 백엔드 언어로 시작하는 것도 좋은 선택이 될 수 있다고 한다.

 

 

제일 먼저 해야할 일

 

1. 1시간 동안 https://code.org/ 사이트에서 코딩으로 놀아보기.

9세~ 과정으로 아이들이 쉽게 따라할 수 있다.

for (var count = 0; count < 4; count++) {

moveForward(200);

turnRight(90);

}

for (var count = 0; count < 4; count++) { moveForward(200); turnRight(90);}

위와 같이 재미있는 활동을 하다보면 자연스럽게 컴퓨터에서 중요한 기초 개념인 순차, 반복, 조건문의 개념을 익히게 된다. 프로그래머는 바보같은 일을 하는 천재적인 사람이다. 컴퓨터는 위대한 일을 하는 바보같은 기계이다. 이 둘은 그래서 찰떡 궁합! 출처는 기억나지 않는다.

 

2. 칸 아카데미의 컴퓨터 교육에서 자바스크립트 감잡기

https://www.khanacademy.org/computing/computer-programming

이 강의는 자바스크립트 분야의 세계 최고의 대가 중 한 분인 John Resig 가 만들었다는데 jQuery도 그가 만들었다고 한다. 천재다.

이 과정에서는 JavaScript 프로그래밍 언어의 개념과 프로세싱에서 사용할 수 있는 멋진 기능을 가르칠 것이다.JS 도서관. 캐기 전에 여기 칸 아카데미에서 프로그래밍을 가르치는 방법, 그리고 여러분이 가장 많이 배울 수 있다고 생각하는 방법에 대한 간단한 투어가 있다.

보통은 동영상을 이용해 칸 아카데미를 가르치지만, 이곳 프로그래밍랜드에서는 이른바 '토크스루'로 가르친다. 토크-스루(Talk-Through)는 비디오와 같지만 사실 대화형이다. 당신이 직접 코드를 가지고 놀기를 원한다면 언제든지 일시 정지할 수 있고, 만약 당신이 우리가 만든 것에 대해 당신만의 버전을 만들고 싶다면 분리가 가능하다. 다음은 토크스루 애니메이션 GIF(실제 토크스루에는 소리가 있을 것이다!):

코드를 넣으면 우측에 그림이 나타나 재밌게 연습할 수 있다. 

 

전체적으로 40여 개의 토크스루, 35개의 도전과 9개의 프로젝트가 있으며, 프로젝트를 얼마나 열광적으로 진행하느냐에 따라 완료까지 약 15-40시간이 소요된다. 그것은 많은 시간처럼 보일지 모르지만, 그럴 가치가 있다. 왜냐하면 마지막에, 여러분은 모든 프로그래밍 언어에 공통적인 프로그래밍의 기본을 알게 될 것이기 때문이다.

 

위 과정을 마쳤다면

기초 튼튼 코드 튼튼 다함께 프로그래밍”(타니지리 카오리 저/타니지리 토요히사 감수/정인식 역, 제이펍/2016) 책을 통해 학습해 볼 것을 추천한다.

소프트웨어에 관한 개념을 조금 확실하게 잡기 위한 목적으로 하버드 대학교의 CS50 수업(https://cs50.harvard.edu)을 들어보는 것도 추천한다. 우리나라 대학 교육과 비교해 보는 재미도 있다. 말하는 속도가 상당히 빠르다.

mooc 등을 통해 하버드 강의 등 우수한 대학 강의를 어디서나 들을 수 있다.

 

 

온라인 강의를 통한 학습

 

1. WEB - 생활코딩 (opentutorials.org)

웹을 통해서 코딩을 배우는 수업이면서, 코딩으로 웹을 만드는 방법에 대한 수업.애플리케이션 만들기, 생활 코딩 웹 프론트엔드부터 백엔드까지 전체를 경험해 볼 수 있다. , 서버측 언어가 자바가 아닌 PHP이지만 웹 애플리케이션 개발의 전체 흐름을 이해할 수 있다.

 

2. https://www.codecademy.com/catalog

웹 애플리케이션 개발과 관련해 필요한 지식을 각 지식별로 학습할 수 있다.

 

3. https://www.w3schools.com/

codecademy 와 같이 병행해 학습할 수 있는 곳으로 프론트엔드 지식을 학습할 수 있다.

 

 

책을 통한 학습

 

책은 개인의 스타일과 수준에 맞게 직접 선택하는 능력을 기르는 것이 좋다.

 

1. 프로가 되기 위한 웹 기술 입문”(고모리 유스케 저/김정환 역, 위키북스/2012)

 

처음 웹 애플리케이션 개발에서 어려운 점 중 하나는 기본적으로 사용하는 용어와 기본적인 흐름에 대한 이해가 없기 때문이다. 웹 애플리케이션 개발에 대한 기본적인 용어와 흐름을 이해하는 데 좋다.

 

 

 

웹 프론트 엔드 학습

 

2. “자바스크립트 & 제이쿼리: 인터랙티브 프론트엔드 웹 개발 교과서”(존 두켓 저/장현희 역, 제이펍/2015)

 

프로그래밍을 처음 시작하는 개발자가 읽어도 괜찮은 책이다. HTML, CSS, 자바스크립트 기초 지식에 대해 잡지 책을 읽는 느낌으로 구성되어 있어 지루함도 적다. 이 책을 통해 HTML, CSS, 자바스크립트에 대한 기초 지식을 쌓은 후 좀 더 깊이 있는 내용을 다루는 책으로 가면 좋다.

 

3. “웹 표준 가이드: HTML5 + CSS3”(존 앨섭 저/김지원, 홍승표 공역, 한빛미디어/2010)

 

HTMLCSS에 대해 한 단계 더 깊이 있는 지식을 다룬다.

 

 

4. “자바스크립트를 말하다: 가장 간결하면서도 완벽한 자바스크립트 입문서”(악셀 라우슈마이어 저/한선용 역, 한빛미디어/2014)

 

자바스크립트에 대해 한 단계 더 깊이 있는 지식을 다룬다.

 

 

웹 백엔드 학습(자바)

 

백엔드는 자바, 파이썬, 루비, 자바스크립트와 같이 많은 언어가 있지만, 여기서는 자바만 언급한다. 국내에 많은 기본서가 있으니 자신에게 적합한 책을 골라서 학습하는 것이 좋다.

 

5. “자바 프로그래밍”(jeff Langr /권오근 역, 교학사/2005)

 

오래된 책이지만 책과 같이 무엇인가를 만들어 가면서 관련된 내용을 학습하는 방식을 선호한다. 이 책이 번역 품질이 나쁘지만 책 진행 방식은 맘에 든다.

 

 

6. “열혈강의 자바 웹 개발 워크북 MVC 아키텍처, 마이바티스, 스피링으로 만드는 실무형 개발자 로드맵”(엄진영 저, 이한디지털리/2014)

서블릿, JSP에서부터 시작해 스프링 프레임워크까지 자바 웹 애플리케이션 개발 전반에 대해 따라하기 식으로 구성되어 있다. http://blog.eomjinyoung.com/2014/05/blog-post.html 문서를 보면 각 장별로 동영상 강의도 제공하고 있다.

이 책 한 권으로 자바 기반 웹 애플리케이션 개발에 대한 전반적인 내용을 알 수 있지만 자바 프레임워크를 직접 구현하는 내용도 포함하고 있기 때문에 다소 난이도가 있는 책이다. 따라서 자신의 수준에 맞는지 검토할 필요가 있다.

 

7. “SQL 첫걸음 : 하루 3036강으로 배우는 완전 초보의 SQL 따라잡기” (아사이 아츠시 저/박준용 역, 한빛미디어/2015)

 

학습해야 할 주제 중의 하나가 데이터베이스이다. 이 책은 SQL문의 작동 원리에 대해 그림을 통해 설명하고 있어 초보 개발자가 읽기에 적합하다.

 

 

개발에서 가장 중요한 점은 경험이다. 일단 개발을 시작하지 않으면 내가 무엇을 모르는지 모른다. 모르는 게 무엇인지 알면 다음 단계로 학습할 것이 무엇인지 인식할 수 있다. 인식을 하고 있다면 성장할 준비가 된 것이다.

링크 구매 시 수수료가 있을 수 있음

이 책은 자바 웹 애플리케이션 개발에 대해 시작 단계를 벗어나 한 단계 더 깊이 있는 지식을 학습하고 싶은 개발자를 위한 책이다. 기본학습이 끝나고 라이브러리, 프레임워크의 내부가 어떻게 동작하는지 알고 싶은 마음, 내가 만든 코드를 좀 더 깔끔하게 구현하고 싶은 마음, 내가 만든 웹 애플리케이션을 배포하는 과정에 대해 학습하고 싶은 마음이 드는 단계에서 읽으면 학습 효과가 가장 높을 것이다.

 


 

반응형