목차
- 백엔드 응답에서 DB 필드명 노출 문제와 보안 이슈
- JavaScript 함수 선언과 변수 호이스팅 그리고 TDZ (Temporal Dead Zone)
- ORM과 SQL 쿼리 작성 경험 차이
- 신입 연봉 및 취업 현실 이야기
- 자격증(정처기)의 취업 및 연봉 영향
- 이력서와 포트폴리오 준비 팁
- JavaScript ES6 이후 변수 선언 (var, let, const) 활용과 차이
- 이벤트 루프, 마이크로태스크 큐 등 비동기 처리 개념
- 개발자의 성장과 책임 의식에 관한 이야기
- 개발자 커뮤니티 분위기와 소소한 일상 이야기
1. 백엔드 응답에서 DB 필드명 노출 문제와 보안 이슈
- 핵심: 백엔드에서 DB 필드명을 그대로 API 응답에 내려주는 것은 권장되지 않음.
- 설명:
- 테이블 필드명이 그대로 노출되면, 공격자가 SQL 인젝션과 같은 보안 취약점을 더 쉽게 탐지하거나 악용할 수 있음.
- 대소문자 차이(예: 카멜케이스)는 완전한 보호 수단이 아니며, 기본적으로 DB 구조를 직접 유출하는 것은 지양해야 함.
- 의견: 보안 감사관에 따라서 다르지만, 가능한 필드명이나 DB 스키마 정보 노출을 최소화하는 것이 안전함.
- 팁: 백엔드 API 설계 시, 응답 객체는 클라이언트에 필요한 데이터만 의미있게 매핑하여 내려주자.
2. JavaScript 함수 선언과 변수 호이스팅 그리고 TDZ
- 핵심: 변수와 함수 선언 방식에 따라 호이스팅과 오류 발생 방식이 다름.
- 설명:
- 호이스팅(hoisting): JS의 변수 및 함수 선언이 실제 코드 실행 전에 끌어올려지는 특성.
- var: 선언과 초기화(undefinded 할당)까지 호이스팅 됨 -> 실제 사용 전에는 undefined.
- let, const: 선언까지만 호이스팅, 초기화는 되지 않아 Temporal Dead Zone(TDZ) 발생. 이 상태에서 접근 시 참조 오류 발생함.
- 함수 선언문(function)은 선언과 할당 전 과정까지 호이스팅 되어 호출 가능.
- 함수 표현식을 const로 선언하면 TDZ에 걸려 선언 전에 호출 불가.
- 의견:
- const로 함수를 선언하는 이유는 재할당 금지 및 의도 명확성을 위해서임.
- TDZ를 이해하면 오류 원인 파악 및 안전한 코드 작성 가능.
- 참고링크: MDN var, let, const 차이
3. ORM과 SQL 쿼리 작성 경험 차이
- 핵심: ORM(Object-Relational Mapping) 사용 시 세밀한 디테일 쿼리가 힘든 경우가 있음.
- 설명:
- ORM은 데이터베이스 쿼리를 추상화 해 쉽게 사용 가능하지만, 직접 SQL 쿼리를 최적화한 경험과는 차이가 있음.
- ORM으로 디테일한 쿼리 작성이 가능하다고 주장하는 경우도 있으나, 일반적으로 SQL 다이나믹 쿼리 조작과는 다름.
- 의견: ORM 도입 전후로 DB 작업 능력 및 규칙 차이를 이해해야 하고, 팀 내 규칙과 경험치 공유가 필요.
4. 신입 연봉 및 취업 현실 이야기
- 핵심: 프론트엔드 신입 초봉은 대략 2700~3200만원 사이가 많으며, 취업 난이도가 점점 높아지고 있음.
- 설명:
- 연봉은 지역, 회사 규모, 프로젝트 종류에 따라 다양함.
- 신입 일자리가 드물고 경쟁이 심함. 경력 3년차 연봉은 4000만원~1억원까지 다양.
- 회사와 직무에 따라 차이가 크므로 본인 스킬 명확히 하는 게 중요.
- 조언:
- 포트폴리오 준비는 필수이며 꾸준히 보완하는 과정이 필요함.
- 지원 서류 및 면접 복기를 통해 부족한 점을 찾아 개선해야 됨.
- 현실 팁: 비전공자, 퍼블리셔 출신도 프론트엔드 지원 가능하며, 포기하지 않고 도전하길 권장.
5. 자격증(정처기)의 취업 및 연봉 영향
- 핵심: 정보처리기사(정처기) 자격증은 SI 업체 및 공기업 취업에 일정 도움되나, 절대적 경쟁력은 아님.
- 설명:
- 자격증이 있으면 SI 업체에서 단가 산정 시 긍정적으로 작용.
- 대부분은 실무 능력과 코딩 실력이 더 중요함.
- 자격증 없이도 충분히 취업과 성장 가능.
- 조언:
- 자격증에 너무 의존 말고, 프로젝트 경험과 코딩 능력을 키우는 게 중요함.
- 초보 개발자라면 기본 지식 보완용으로 자격증 준비 가능.
6. 이력서와 포트폴리오 준비 팁
- 핵심: 서류 전형 및 면접 합격을 위해 이력서와 포트폴리오 점검과 개선 반복이 필요.
- 설명:
- 서류에서 떨어지는 경우 어떤 점이 매력 없었는지 체크 필요.
- 면접 탈락 시 답변 미흡이나 커뮤니케이션 문제를 돌아봐야 함.
- 조언:
- 포트폴리오에 최신 기술 및 프로젝트 경험을 반영.
- 나만의 이력서 사이트를 만들고 디자인은 Pinterest, Dribbble 참고 권장.
- 경험 부족한 경우에도 자신 있게 지원하고, 배우며 성장하는 태도 중요.
7. JavaScript ES6 이후 변수 선언 (var, let, const) 활용과 차이
- 핵심: ES6 이후로 var 사용은 점점 줄고 let, const 위주로 권장됨.
- 설명:
- var는 함수 스코프, let, const는 블록 스코프를 가짐.
- const는 재할당 불가 변수 선언에 주로 사용되어 의도 표현에 도움됨.
- TS(타입스크립트)에서는 var 사용을 기본적으로 제한하는 설정들이 많음.
- 의견:
- var는 legacy 코드나 특정 라이브러리 호환 필요시만 제한적으로 사용.
- 개발 초심자는 let, const 스코프와 TDZ 개념을 정확히 이해하는 것부터 시작 추천.
8. 이벤트 루프, 마이크로태스크 큐 등 비동기 처리 개념
- 핵심: JS 비동기 처리를 이해하려면 이벤트 루프와 큐 구조를 알아야 함.
- 설명:
- 콜 스택(Call Stack): 함수 호출이 쌓이는 스택 구조.
- 메시지 큐(Message Queue): 비동기 이벤트 콜백 대기열.
- 마이크로태스크 큐(Microtask Queue): Promise 콜백 등 우선순위가 높은 작은 태스크 대기열.
- 이벤트 루프는 콜 스택이 비었을 때 큐에 있는 콜백을 실행시킴.
- 팁: async/await, Promise 등을 활용할 때 기초 개념 이해가 필수.
9. 개발자의 성장과 책임 의식에 관한 이야기
- 핵심: 개발자는 스스로 성장의 주체가 되어야 하며, 맡은 일에 책임감을 가져야 함.
- 설명:
- 회사는 가끔 지원보다 책임감을 더 중요시함.
- 스스로 학습하고 문제 해결 능력을 키워야 함.
- 연봉 상승과 커리어 성장은 본인 노력과 회사 지원 환경에 달림.
- 의견:
- 실패나 어려움에 책임을 남 탓하지 않고 받아들이는 자세가 성장에 도움됨.
- 팀원과 소통하며 지속적 피드백으로 실력을 키우자.
10. 개발자 커뮤니티 분위기와 소소한 일상 이야기
- 개발자들 사이에서 가벼운 일상 토크도 활발했음.
- 건강, 체중 조절, 식사, 자동차, IT 장비(아이맥 등) 이야기 등 친목 도모.
- 정신 건강과 일상 밸런스도 중요한 주제로 거론됨.
면접팁⚡
- 서류 탈락, 면접 탈락 사유를 명확히 진단하고 복기할 것.
- 기술 이외에도 커뮤니케이션과 문제 해결 방식에 대한 답변 준비 필요.
- 최신 JS 개념(호이스팅, TDZ), 비동기 처리 이해도를 점검할 것.
- 프로젝트 경험을 구조화해서 말할 수 있도록 준비하고, 포트폴리오는 최대한 최신 상태로 유지.
링크🔗
- MDN var, let, const 차이
- 제로초 TV - 알고리즘 교육 (개발자 갬성 음악 및 알고리즘 관련)
- Pinterest, Dribbble (포트폴리오 및 이력서 디자인 참고 사이트)
#자바스크립트#호이스팅#보안#백엔드#프론트엔드#취업#연봉#정처기#이력서#개발자마인드