
1장. 자바라는 언어의 시작
1. 웹개발 하세요!
2. 웹개발, 자바(Java)로 하세요
- 웹개발은 자바를 기반으로 시작한다. 참고할 자료가 많다. 이미 해결한 방법을 보면서 공부할 수 있어 공부가 수월하다. 일자리가 많다.
3. 명확한 목표의식이 필요해요
4. 혼자 할 수도 있는데, 굳이 학원을 다녀야 할까요?
- A를 배웠을 때 A2나 A3를 시도하지 않고, B 또는 C 설명을 주입 받을 준비를 하는 경우가 있다. 배우기만 할 뿐 만들려는 생각을 하지 않는다. 응용 능력이 부족한 것이다.
- 팀 프로젝트에서 소통이 부족하면 개인의 성과가 좋더라도 다른 사람들의 작업과 융합되지 않는다. 소통 부족으로 좋지 않은 감정이 쌓이면 최종 결과물의 질도 좋을 수 없다.
5. 장기과정을 시작하기 전에 반드시 아셔야 하는 것
6. 장기과정 주의사항
- 남과 비교하지 않는다.
- 팀원은 중요하다. 프로젝트 팀은 비슷한 실력과 성향을 가진 사람들로 구성하는 것이 좋다.
7. 처음입니다만?
- 복습이 예습보다 낫고, 실습이 이론보다 100배 낫다. 프로그래밍은 코드를 무조건 많이 쳐봐야 실력이 쌓인다.
- 잘하는 사람은 설명을 빠르게 흡수하고, 코드를 직접 쳐보는 양이 남다르다. 심하게 변형하며 수많은 시도를 거듭한다.
8. 절대로 '복붙'하지 마세요! (충분한 실력이 쌓이기 전에는)
9. 나만 너무 느린 것 같아요!
- 코드를 해석하는 능력은 곧 실력이다. 복잡한 로직을 작은 블록을 나눠볼 수 있어야 한다. 짧고 간단한 코드는 머리로 해석하고 실행할 수 있어야 더 크고 복잡한 코드를 정확하게 이해할 수 있다.
- 영어 타자 속도가 빠르면 어떤 문제를 만나도 자바의 관점에서 빠르게 생각하고 코드를 작성할 수 있다.
10. 고급 문제가 안 풀려요! (제 실력은 왜 여기까지 인가요?)
- 문제를 읽고 문제의 요구사항이 파악되면 문제별 전략이 머리속에 떠올라야 한다. 떠오르지 않는다면 기초를 다시 다지는 것이 효과적이다.
11. 공부 방법을 바꿔볼까요?
12. 쉬운 문제를 풀까요, 어려운 문제를 풀까요?
- 실력을 빨리 늘리기 위해 필요한 것은 반복이다. 목차가 떠오를 때까지 반복한다.
- 난이도가 비슷한 문제를 만나면 목차를 떠올리고 생각을 거쳐 문제를 해결한다. 난이도 높은 문제를 만났을 때 답을 보게 되면 공부 방향이 잘못될 가능성이 있다. 풀었다는 착각에 위장된 실력에 도취되고 다른 문제를 사냥하러 다닌다. 좋지 않은 자세이다.
- 실력이 좋은 사람은 머리속에 목차를 정리하는 과정을 거치고, 하나의 문제에 대해 다양한 해결 방법을 생각해 낼 수 있다. 배워서 아는 것이 아니라 머리속에서 융합되는 과정을 통해 자연스럽게 생각이 난다.
- 문제를 빠른 속도로 풀 수 있을 때까지 쉬운 문제부터 반복한다.
13. "모든 복습을 누적해서 하라"는 건 무슨 뜻인가요?
14. 누적 복습 + 정리는 이렇게 하세요
- 복습은 누적적으로 한다. 복습과 정리를 병행한다.
15. 다른 강의를 왜 듣지 말라는 거예요?
16. 저녁알바/주말알바 해도 되나요?
17. '클래스' 도대체 어떻게 공부해야 돼요?
2장. DataBase의 시작
1. DB 쉬운데요? 체질 같아요 (저 개발자 말고 DBA 할까요?)
2. DB 정말 너무 쉬운데요, 반복 안 하면 안되나요?
3. DB 공부는 반드시 누적적으로!
4. 자바 복습, 해야 돼요?
5. 자바 복습을 이렇게 하세요
6. 알고 푸는 건지, 외워서 푸는 건지...
- 연습문제가 주어지면 그 안에서 해법을 찾아야 한다. 머릿속에서 이렇게 한면 된다는 생각이 떠오를 때까지 반복이 필요하다. 점차 응용력이 생기고 생각하는 속도가 빨라진다.
7. 자바 복습할 때, 문제의 답을 봐도 되나요? (첫 복습이 아닐 때)
- 복습을 할 때 답을 보지 않는 것이 좋다. 절대로 풀리지 않는 문제가 정해지면 답을 보거나 관련 강의를 들어 어설프게 정리한 부분을 보완한다.
8. SQLD 자격증이 뭐예요?
- SQLD는 중소기업에서 꽤 알아주는 자격증이다. 정보처리기사가 있으면 확실히 도움이 된다.
9. SQLD 무조건 합격하는 공부법 (둘째 달)
10. JDBC가 뭐예요?
- JDBC는 SQL문을 자바 코드에서 실행할 수 있도록 하는 기술이다. 보통 하나의 SQL문을 하나의 메서드로 감싸는 형태이다. 코드 자체로 난이도가 꽤 높다. 웹개발은 서버 개발의 대부분이 데이터베이스 연동 코드로 이루어져 있어 JDBC를 먼저 학습하면 서버 개발을 배울 때 훨씬 쉽게 따라갈 수 있다. 충분히 많은 시간 투자가 필요하다. 한 SQL문이 주어졌을 때 자바 코드로 구현할 수 있다면 JDBC 학습은 끝난 것이다.
11. (프로젝트) 주제 선정과 스토리보드
- 스토리보드 작성, DB 설계, SQL, 화면 개발, 서버 개발까지 한 사람이 하나의 기능 전체를 구현할 수 있어야 한다.
- 스토리보드는 웹 개발자가 만들어야 할 화면 중심의 문서이다.
12. (프로젝트) DB 모델링
3장. HTMLㆍCSS의 시작
1. "HTML, CSS가 너무 어려워요!"
- 백엔드 개발자가 목표라면 HTML/CSS를 완벽히 공부하는 방식은 불필요하다. 실제 아웃풋을 만드는 데까지 시간이 대단히 많이 걸린다.
- 자바를 수월하게 다루던 사람이 HTML을 어려워하는 경우가 있다.
- 모든 개념을 당장 이해해야 하는 것은 아니다. 결과를 만들어보는 실전형 연습을 권장한다.
2. 자바 복습, 계속 해야 돼요? (셋째 달)
3. SQLD 따려면 얼마나 공부해야 돼요?
4. SQLD 꼭 따야 하나요?
5. (프로젝트) 기능명세와 SQL
- 기능명세는 스토리보드를 기반으로 화면에서 필요한 기능을 정리하고 나열한 리스트이다. 기능은 DB처리 또는 CRUD 작업이 필요한 기능이다. 기능명세의 각 기능에 식별값을 부여하고 스토리보드에 표기하면 스토리보드와 기능과 SQL을 교차 검증할 수 있다.
6. (프로젝트) 정지화면 개발
- 웹브라우저의 개발자 도구로 분석하면 HTML과 CSS의 실제 적용 방법을 빠르고 정확하게 공부할 수 있다.
- CSS 요소가 왜 사용되었고 어떤 값을 가지는지 반드시 이해한 후 필요한 것을 가져온다. 직접 타이핑하며 학습해야 손에 익는다.
- HTML과 CSS는 손가락으로 하는 공부이다. 반복하면서 작업 속도를 높이는 것이 핵심이다.
- HTML/CSS 책을 정독하거나 강의에 시간을 낭비하지 않는다. 화면을 개발하면서 그때마다 필요한 것을 찾아 해결한다. 무조건 맣이 만들어 보는 것이 중요하다.
- 투입 시간을 늘려 숙련도를 먼저 확보하는 것이 더 효과적이다. 화면 개발은 손에 익히면 끝나는 작업이다.
4장. JS/jQuery의 시작
1. 자바스크립트ㆍ제이쿼리 어떻게 공부해요?
- ES6는 중소기업 취업을 목표로 하는 경우 반드시 알아야 하는 기본이다.
- 제이쿼리(jQuery)는 자바스크립트에서 사용할 수 있는 라이브러리이다. 웹 애플리케이션의 속도를 느려지게 해 현재 시장에서 버림받는 기술이다. 그러나 중소기업 환경에서 여전히 사용되고 있고, 화면을 개발자의 관점으로 보는 시각을 키울 수 있다.
2. 자바스크립트ㆍ제이쿼리 둘 다 해야 하나요?
- 제이쿼리는 현재 시장에서 점점 버려지고 있는 기술이다. 외면받는 이유 중 하나는 '속도' 문제이다.
- 실무에서 여전히 사용되고, 화면을 프로그램으로 보는 시각을 키울 수 있다.
3. 자바 복습, 해야겠죠? (넷째 달)
4. (프로젝트) 슬슬 지치는 팀원이 생길 수 있어요
5. (프로젝트) 동적 화면 개발
6. (프로젝트) JDBC
- 각각의 기능을 메서드로 구현한다. 각 메서드의 중괄호
{} 안에 JDBC 코드로 SQL 문을 실행하는 내용을 작성한다. DAO(Data Access Object)는 이 메서드들을 모아놓은 클래스이다.
5장. Servlet&JSP와 MVC 패턴
1. 서버 기술 공부에 들어가기 전에 체크하세요
- Servlet&JSP는 자바 언어를 기반으로 서버프로그램을 만드는 기술이다.
- 서버 개발에서 가장 어려운 부분은 JDBC이다.
2. 무슨 이름이 이렇게 길어요. "Collection Framework"?
- Collection Framework는 자료구조와 알고리즘을 자바 클래스로 구현한 것이다. 매우 중요하다.
- 자료구조와 알고리즘은 C언어 기반으로 공부하는 것을 권장한다. 실력을 비약적으로 향상시킬 수 있다.
3. Servlet & JSP
- Servlet은 작은 서버 프로그램을 의미한다. 서버에서 실행되는 자바 코드로, 웹브라우저의 요청에 의해 동작한다. 웹브라우저가 해당 주소의 서버에 요청을 보낼 때, 서버에서 실행되는 자바 클래스가 Servlet이다.
- JSP는 HTML 코드에 자바 코드가 포함된 형태이다. 실제로는 서버에서 Java 코드가 실행되어 HTML 문서를 생성하는 프로그램이다.
4. Servlet & JSP를 공부할 때 주의사항
- Servlet을 중심으로 공부한다. JSP는 기본만 공부해도 충분하다. Servlet을 잘 알면 이후 공부가 쉬워진다. 웹브라우저에서 서버로 요청이 들어왔을 때 서버에서 어떤 코드가 어떻게 실행되는지 알아가는 것이다. 이후 MVC 패턴을 수월하게 이해할 수 있다.
5. (프로젝트) 서버단 개발 - Model 1
- Model 1은 HTML과 자바 코드를 한 파일에 작성하는 방식이다. 개발 규모가 조금만 커져도 코드의 생산성이 크게 떨어져서 개발 실무에서 사용되지 않는다.
- 비교적 쉽게 프로젝트를 완성할 수 있으므로 스스로 서버를 완성했다는 성취감을 느낄 수 있다.
6. (프로젝트) 서버단 개발 - Model 1과 Model 2 (MVC 패턴)
- Model 2는 MVC 패턴이 적용된 자바 코드이다. 프로젝트의 모든 코드를 Model, View, Controller 3가지 역할로 구분하여 개발한다.
6장. Spring과 프로젝트 마무리
1. Spring이 어렵다고요?
- Spring Framework를 먼저 공부한 사람은 Spring Boot가 어렵지 않다. 중소기업 대부분은 Spring Boot를 사용하는 추세이다.
2. 망했어요! 그때까지 못끝내요 (프로젝트 마무리)
3. 취업 준비는 무조건 이렇게 1 - 이력서와 자기소개서, 프로젝트 요약
4. 취업 준비는 무조건 이렇게 2 - 프로젝트 발표자료
5. 취업 준비는 무조건 이렇게 3 - 프로젝트 API 명세
- API 명세는 어떤 주소로 어떤 데이터값을 가지고 요청하면 어떤 일이 발생하고, 그 결과로 어떤 값을 되돌려 받게 되는지를 정리한 문서이다.
6. 취업 준비는 무조건 이렇게 4 - 프로젝트 소스코드 공개 GitHub
7. 취업 - 사람인과 잡코리아, 그리고 잡플래닛
- 규모가 작은 회사는 채용 공고를 주로 사람인에 올리고, 규모가 큰 중소기업 또는 중견기업은 주로 잡코리아에 채용 공고를 올리는 경향이 있다.
8. 취업 그후, 홀로서기 - "회사는 학원이 아닙니다"
- 취업 후 홀로 살아남는 문제가 더 중요하다.
- 질문을 잘 해야 한다. 질문하기 전에 충분히 고민하고, 무엇을 모르는 것인지, 무엇을 질문해야 할지 정리한 후 질문한다. 그리고 최대한 스스로 해결하려는 노력이 필요하다.
- 수습기간 중에 야근을 하기를 바란다. 개인 실력과 회사가 기대하는 실력 간의 차이를 메우는 시간이다. 가능하면 입사 당일부터 야근한다.
- 만드는 능력과 문제 해결 능력을 반드시 갖추어야 한다.
- 어떻게 만드는지 알고 어떻게 고쳐야 하는지 안다면 성공이다.
7장. 미래에는 (GPT와 개발자)
- GPT 덕분에 개인이 만들 수 있는 프로젝트의 스펙트럼이 훨씬 더 넓어진다. GPT를 활용하여 개발 역량이 높아지면서 이를 활용할 수 있는 개발자와 그렇지 않은 개발자의 양극화가 심해진다. 도구의 발전이 직업의 소멸만을 의미하지 않는다.