패스트캠퍼스 강의를 정리한 내용입니다.
"The RED : 프론트엔드 Back to the Basics : 지속 가능한 코드작성과 성능 향상법 by 김태곤"
알아두면 좋은 것들
추천 참고 자료
'좋은 깃 커밋 메시지를 작성하기 위한 7가지 약속’ - NHN 기술 블로그
‘지옥에서 온 깃’ - 생활코딩 무료 강의
'팀 개발을 위한 깃, 깃헙 시작하기' - 한빚미디어 출간 서적
git을 지원하는 그래픽 인터페이스 애플리케이션
그래픽 도구는 외부 업체에서 만드는 것이므로 그래픽도구가 지원하지 않는 기능이 있을 수 있음. 텍스트 환경의 깃은 공식 오픈소스라 문제가 생겼을 때 텍스트 환경에서 해결하는 게 더 빠를 때가 있으므로 텍스트 환경에서 하는 방법도 알아두면 좋음
맥용 터미널 보조 프로그램
여러 OS를 가상화하여 사용할 수 있는 가상화 소프트웨어
예를 들어, 성능이 좋은 진공 청소기!
성능이 아무리 좋아도 조작이 어려우면 수요가 많을까?
성능이 좋아도 좋은 평가를 받을 수 없음
또 다른 예로, 카카오뱅크
처음부터 사용성을 강조하며 런칭함
편리하기 때문에 많은 인기를 얻어 성공함
사용자가 직접 보는 비주얼 요소를 다루니 디자이너와 협업할 일이 많고
일반적인 프로그래밍 스킬은 물론, 비즈니스 로직도 많이 다루므로 백엔드 지식도 상당수준 요구함
웹 애플리케이션에서 데이터베이스, 파일, 인증을 제외한 부분은 거의 프론트엔드로 옮겨오는 추세라 프론트의 역할이 나날이 커짐
Html5, css3라고 부르던 명세는 이제 없다고 봐야함
Html 명세가 지지부진하게 개발되니 2004년에 애플 모질라 오페라 등 주요 제조사 브라우저들이 모여 WHATWG라는 컨소시엄 구성
2008년에 html5 초안 작성 후 몇 년간의 논의 및 개발을 거쳐 2014년 최종 권고안 발표
이후 html5는 WHATWG에서 개발을 담당하게 됐고 이제 html은 버전이 사라지고 계속 변화하는 living standard가 됨
W3C에서 2017년에 발표한 마지막 명세에는 html 5.2로 버전을 명시하고 있지만
계속 변화해서 가장 최신 명세는 2020년에 갱신되었음
W3C에서 마지막 발표한 CSS는 2.1버전, CSS3라는 버전은 없고
이제는 CSS는 기능별로 모듈별로 나뉘어져서 각 모듈의 버전이 있고 개별적으로 발전하는 형태가 되었음
프론트엔드 개발자가 힘든 이유..
프레임워크를 비롯한 기술 트렌드가 자주 바뀜
Grant, gulp 등의 작업도구 > 웹펙과 같은 번들러 > 웹팩 설정 어렵다고 새로운 번들러 파셀(Parcel) 등장
- 정확한, 검증 된 지식만을 전달하기
- 필요 시 예제 코드 작성하기 (글을 더 풍부하게 해줌)
- 필요 시 참조 링크 추가로 글에 신뢰성 더하기
- 문장을 짧고 정확하게 작성하기
(문장이 길어지면 집중도와 흥미가 떨어질 뿐!)
백엔드는 인풋과 아웃풋만 정해진대로 나타나면 개발자가 아닌 이상 관여하기 힘든데
디자이너나 프론트엔드 결과물에는 누구나 의견을 낼 수 있음
1px 차이까지 요청 받아 수정한 경험이 있다면… 이럴 때 다음과 같은 방법을 추천
1. 자주 사용하는 스타일을 컴포넌트화 하기
자주 사용하는 프로그래밍 코드를 라이브러리로 만들어 두듯이, 자주 사용하는 스타일을 컴포넌트로 만들고 나중에 이들을 조립해서 사용하기
이 때, 이 과정은 디자이너와 함께 협의! 서로 합의된 컴포넌트를 기반으로 애플리케이션을 만들어 나가는 것.
이런 방법은 atomic 디자인과 통하는 개념이며 React나 Vuejs 같은 모던 프레임워크는 이런 컴포넌트화가 용이하게 되어 있음
2. MVP, 실행 가능한 최소 단위의 프로덕트 만들어 보기
스티븐잡스가 말하길, '대부분의 사람들은 제품을 보여주기 전까지 자신이 뭘 원하는지 모른다'
프론트엔드 개발자로서 우리는 비주얼 요소 만들고 인터렉션 더하는 것. 이때 컴포넌트화 해놓은 것이라면 논의가 끝난 후이지만 그게 아니라면 무수한 피드백을 감당해야함…
꼭 필요한 부분만 최소로 구현하고 의견 받고 수정하는 과정을 반복하기
‘애자일 방법론 적용’ 참고하기!
핵심은, 피드백과 수정은 피할 수 없으니 최소 규모로 자주 반복하기
한 사이클에서 개발할 규모가 작아지니 일정 측정도 쉬워지고 진척도 보고도 용이함
3. 가능하다면 API는 프론트엔드 개발자가 설계하기
백엔드와는 API 위주로 협업을 하게 되는데, 이 때 API 설계는 누가 담당할지 모호하나
편하게 데이터를 받으려면 프론트에서 정의하는 게 좋음
백엔드 개발자와 API에 대해 협의하고 입출력을 정의하는 것은 프론트엔드 개발자가 갖출 최소한의 백엔드 지식!
4. 스스로에게 득이 되는 대화법 사용하기
예를 들어 협업 부서로부터 다음과 같은 질문을 받았을 때
Q: 이 에디터 3개월만에 개발 되나요?
‘안된다’ 보다는 ...
→ 요구 기간내 불가능하다는 결과는 비슷하지만 부정적인 사람이 아닌 긍정적인 사람으로 인식될 수 있음