react 썸네일react

2023-11-25

목차

  1. 백엔드 응답에서 DB 필드명 노출 문제와 보안 이슈
  2. JavaScript 함수 선언과 변수 호이스팅 그리고 TDZ (Temporal Dead Zone)
  3. ORM과 SQL 쿼리 작성 경험 차이
  4. 신입 연봉 및 취업 현실 이야기
  5. 자격증(정처기)의 취업 및 연봉 영향
  6. 이력서와 포트폴리오 준비 팁
  7. JavaScript ES6 이후 변수 선언 (var, let, const) 활용과 차이
  8. 이벤트 루프, 마이크로태스크 큐 등 비동기 처리 개념
  9. 개발자의 성장과 책임 의식에 관한 이야기
  10. 개발자 커뮤니티 분위기와 소소한 일상 이야기

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), 비동기 처리 이해도를 점검할 것.
  • 프로젝트 경험을 구조화해서 말할 수 있도록 준비하고, 포트폴리오는 최대한 최신 상태로 유지.

링크🔗

#자바스크립트#호이스팅#보안#백엔드#프론트엔드#취업#연봉#정처기#이력서#개발자마인드