백엔드 개발자가 Djnago fullstack 사이드 프로젝트를하며 ( html, css, vanillaJS 그리고 JS프레임워크 )
서론
웹 개발 환경에서 FE 개발자와 BE 개발자는
상대의 업무를 서로 이해하게된다면
좀 더 총괄적인 서비스의 흐름과 병목지점을 파악할 수 있다.
좀 더 총괄적인 서비스의 흐름과 병목지점을 파악할 수 있다.
때문에 이 둘의 협업 과정은 자연스럽게
Full-stack을 지향하고 있는 과정이라고 생각한다.
24년 12월부터
Django fullstack 사이드 프로젝트를 시작했다.
본론
시행착오
- python django 코드 뿐 아니라
html + css + js도 함께 커버하기에
작업에 상당한 context switch가 있었다.
- 머릿속에 그린 것을 도식화나 문서화하지 않고
무작정 뛰어들었기 때문에
디자인 중인 화면을 확인할 곳이 없었다는 흠이 있었다.특히 wireframe, 화면설계서가 없으니까백엔드 작업시 하나의 기능을 완성하기 전까지제대로 빌드가 되지 않기 때문에
dribble이라는 디자인 사이트를 많이 참고했다.
중복 작업과 반복 작업
- 중복, 반복 작업
django template language에서 상속을 지원하기 때문에
베이스 템플릿을 상속받아서 페이지를 제작할 수 있다.
템플릿에서 내부에서 여러번 쓰이는 컴포넌트가 불편하다면
공통 컴포넌트를 만들어주면된다.
그러나 컴포넌트를 FE 프레임워크 레벨 정도로 관리하기는 쉽지 않다.
공통 컴포넌트를 관리하려면
프레임워크의 틀을 따라가야하는데
이 시점이 프론트엔드 프레임워크 선정을 할 타이밍이라고 생각한다.
JS로 모든 것을 control한다는 것의 간결함
- FE UI 프레임워크에서는
html로 작성한 class, id 명을 js에서 검색하여 따르기보다
js로 직접 동적으로 문서 객체를 생성한다.
참조하기도 간편하고
관리하기도 쉽다. - js는 bom(부분적으로)과 dom을 컨트롤 할 수 있다.
결론
결국 아주 간결한 landing page 외에는
JS 기반 프레임워크를 사용해야한다.
나는 왜 바로 FE 프레임워크로 뛰어들지 않았나?
더 깊고 가파른 학습을 위해
컴퓨터공학이나 소프트웨어학과의 교육 커리큘럼도 그렇고
프레임워크 이전에 프레임워크를 작성한 프로그래밍 언어를 먼저 배운다.
예를 들어, django를 배우기 이전에 python을 학습한다.
django를 배우며 쓴다는 것은
wsgi 환경의 서버 위에서 서빙되는 웹 애플리케이션 프로그램을 제작한다는 것이고
python의 gil과 동적타이핑 특징이 그대로 적용된다.
그리고
프레임워크 - 프로그래밍 언어 밑에
보다 근본적인 프로그램의 동작 단위를 다룬
프로세스, 스레드가 있으며 이를 지원하는 OS가 있다.
따라서 나는.
곧바로 "인기있다고" 일컬어지는 FE 프레임워크를 설치하는 것보다
곧바로 "인기있다고" 일컬어지는 FE 프레임워크를 설치하는 것보다
- html css js +
bom(브라우저 창에 접근하고 조작하는 메서드/인터페이스),
dom(웹 페이지 컨텐츠를 조작하는 메서드/인터페이스),
event(window event, form event, keyboard event, mouse event 등등...)
와 같은 기본적인 요소들과 - 웹 브라우저가 무엇을 하는지?
- JS가 무엇을 하는지?
- 그리고 FE 프레임워크는 어떤 면에서 vanillaJS보다 유리한지?
- FE 프레임워크별로 어떤 특징이 있는지?
를 학습한 뒤
인기있는 프레임워크가 아닌
적재적소의 프레임워크를 찾아 학습하는 방식이
훨씬 깊게 웹 생태계를 이해할 수 있다고 생각했기에
html + css + js가 별개의 파일로 관리되는 구조를 먼저 학습했다.
프레임워크별 특징을 알고 가자
FE 프레임워크, BE 프레임워크의 구성 방식별로
렌더링 방식의 차이 때문에
렌더링 방식에 잘 맞는 서비스의 용례가 각각 있다.
렌더링 방식에 잘 맞는 서비스의 용례가 각각 있다.
신속하게 시작하기
언제나 프로그래머는 "실천가"이므로
"행동력" + "코딩 근육" 을 기를 수 있는 프로젝트를 당장 시작해야한다 !
리누스 토발즈
"Talk is cheap, Show me the code"
댓글
댓글 쓰기