참고
우묻다
https://www.youtube.com/watch?v=g5sxpi0sJc4
(2021) 1. 비전공자로 자바 백엔드 개발자 시작하기
https://jojoldu.tistory.com/505?category=689637
이 책을 추천하는 이유는, 결과적으로 우리가 어떤 서비스를 하던 밑 단에 있는 최소한의 쿼리가 어떻게 돌아가는 것이고, 리눅스는 어떻게 돌아가고, 네트워크는 어떻게 돌아가는 것인지를 모르는 채로 백엔드 개발자를 할 수는 없기 때문이다.
백엔드 개발자라면 언어, 데이터베이스, 리눅스는 꼭 공부해야 한다.
언어, 데이터베이스, 리눅스는 어떤 프레임워크를 쓰든 간에 적용되는 것들이며, 조금이라도 규모가 커지려면 꼭 필요한 기술들이므로 중요시해야한다.
객체 지향 프로그래밍을 의미하는 oop는 컴퓨터 프로그래밍을 객체들의 모임으로 파악해서 각각의 객체가 메시지를 주고받고 데이터를 처리할 수 있게 하는 것이다.
객체지향프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발이 많이 사용된다. 개발과 보수를 간편하게 하며 직관적인 코드분석이 가능케 한다.
TDD는 테스트 주도적 개발을 의미한다. TDD는 소스코드의 품질을 높여주며 재설계 및 디버깅 시간을 절감시켜준다. 파이썬에서는 테스트모듈로 unittest가 내장되어 단위 테스트를 할 수 있다.
클린코드의 본질은 다른 엔지니어가 코드를 읽고 유지 관리할 수 있게 하는 것이다. 프로그래밍을 할 때 항상 클린코드에 대한 고민을 하며 코드를 짜며 연습을 하는 것이 큰 도움이 된다.
서버를 배포하고 운영하기 위해선 리눅스는 필수적이라고 할 수 있다.
공부 순서
일반적인 사용법
파일 다루는 법, vi사용, 쉘 사용 등 기본적인 터미널 사용법을 숙지
관리자
리눅스 설치, 프로세스, 패키지 등의 기술
서비스
웹서비스를 만들고 사용자에게 서비스를 제공하는 기술들. 웹, 메일, DNS, FTP 등을 공부
ORM만으로도 간단히 모델을 구축할 수 있다. 하지만 DB에 어떤 문제가 발생했을 때 데이터베이스에 대한 지식이 없다면 문제를 쉽게 해결할 수 없을 것이다.
Real MySQL에서 아키텍쳐, 트랜젝션, 인덱스 등에 관해 공부하고 ORM으로 적용해보면 더 탄탄하고 유연한 데이터베이스가 구축하는 능력을 기를 수 있다.