[프론트엔드 개발과 CS 지식]

주니어 프론트엔드 개발자를 만나면 CS(Computer Science) 지식이 어디에 쓰이냐는 질문을 자주 받습니다.


과거에는 UI 스레드의 과부하를 막고 원하는 때에 원하는 정보를 화면에 보여주기 위해 라이프사이클을 통제하는 것이 중요했습니다. 그때 스레드 관련 이론을 다시 짚어봤던 기억이 납니다.


클래스 컴포넌트가 리액트의 기본 컴포넌트였을 때 리액트를 사용한 경험이 있는 개발자라면 객체지향 설계 등을 따로 공부해 프레임워크나 라이브러리를 더 잘 이해/활용하기 위해 노력한 경험이 있을 겁니다.


하지만 Hook과 프론트엔드 메타 프레임워크 등이 등장하면서 프론트엔드 기술은 점점 추상화되었고, CS 지식이 많이 없어도 당장 필요한 기능을 구현하는 것이 가능해졌습니다.

그래서 주니어 개발자들은 "나중에 이 지식이 쓰인다고는 하지만, 지금 회사에서 업무할 때는 그렇지 않아요. 언제 CS 지식이 쓰이는 것이고, 프론트엔드 개발자는 어느 정도까지 깊게 공부해야 하나요?"라는 의문을 품게 됩니다.


이런 질문을 받으면 저는 이렇게 답변드립니다. "갓 입사한 신입에게는 성능 최적화나 배포 파이프라인 설계 등을 맡기진 않습니다. 그렇기 때문에 당장은 CS 지식이 없어도 업무를 처리할 수 있습니다. 하지만 나중에 미드 레벨, 시니어급 엔지니어가 되면 CS 혹은 소프트웨어 공학 지식이 부족한 경우 타 팀에 의존해서 프론트엔드 팀이 필요한 환경을 구축해야 하므로 CS 지식은 중요합니다."


실제 미드, 시니어 레벨 엔지니어의 역할 중 하나는 구성원이 코드를 커밋하고 Pull Request를 통해 병합시키기만 하면 자동으로 프러덕션 환경까지 배포까지 완료되도록 밑 작업을 해주는 것입니다.


아쉽게도 저도 큰 조직에 있었을 땐 DevOps팀이 따로 있어 Route53, S3, CloudFront를 사용해 처음부터 배포 파이프라인을 설계해 본 적이 없습니다. 하지만 스타트업으로 옮기고 리드 엔지니어로 일하면서 다수의 프러덕트를 처음부터 구축하다 보니 네트워크 지식이나 CS 지식의 중요성을 더 많이 깨닫게 되었습니다.


'우리 팀이 필요로 하는 환경은 우리 팀에서 구축하기'라는 목표를 달성하려면 CS 지식이 필요합니다. 이외에도 내가 원하는 타이밍에 원하는 데이터를 화면에 보여주려면 브라우저의 동작 원리나 클로저-Effect의 관계 등을 알아야 합니다. 리액트나 Next.js의 공식 문서에 있는 내용의 행간에 담긴 의미나 해당 문서를 토씨 하나 빼놓지 않고 이해하려면 CS 지식이 중요합니다. 소프트웨어 공학 지식도 마찬가지이고요.


어제 개강을 한 경력자 대상 역량 강화 코스인 '항해 플러스'를 통해 언제 어떤 경우에 CS의 이런 지식이 필요하다는 구체적인 사례들을 공유드릴 예정입니다.


요즘엔 미디엄에 주로 블록체인 관련 글만 올리긴 하는데 프론트엔드 기술 관련해서도 조금씩은 올려보도록 노력하겠습니다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 6월 16일 오전 9:37

댓글 2

함께 읽은 게시물


박람회



... 더 보기

조회 761


취준생이 전략적으로 포트폴리오를 구성하는 방법 #2

... 더 보기

 • 

댓글 1 • 저장 35 • 조회 3,257


프로그래머의 손톱

... 더 보기

프로그래머의 손톱

K리그 프로그래머

프로그래머의 손톱

 • 

댓글 3 • 저장 9 • 조회 4,974


[고용노동부X대상상공회의소X한국취업센터] 2025 미래내일 일경험 인턴형


... 더 보기

가장 많이 쓰이는 데이터 분석/BI 툴은 무엇일까?

사실상 엑셀이나 구글 시트가 아닌가 싶다. 이만큼 많은 사람들이 쓸 줄 알고 여러 형태로 분석이 가능하고 결과물을 공유 가능한 툴은 많지 않다. 실제 현업부서들과 일을 해보면 굉장히 많은 데이터들을 구글 시트의 형태로 매뉴얼하게 관리한다. 이 위에서 간단한 차트등을 만들어 지표 관리를 하곤 한다.

... 더 보기