728x90
반응형

모의면접 스터디 첫 날 ⭐️


  1. KEEP
    • 자신감 없어 보이는 “~인 것 같다.”와 같은 표현을 사용하지 않아 답변에 확신이 있어보인다.
  2. PROBLEM
    • 음… 어… 하는 filler word가 많다.
    • 눈을 잘 마주치지 않고 눈알을 굴린다.
  3. TRY
    • ‘대답’이라는 단어보다는 ‘답변’이라고 말하기
    • 음… 어 하면서 생각하지 말고 눈을 마주치며 답변 내용 고민하기

알고리즘 공부


  1. 완전 탐색 : 가능한 모든 경우의 수를 탐색하는 방법
    • Brute-Force search : 사실상 그냥 for문으로 단순하지만 시간 초과 나기가 쉽다.
    • Bitmask : 경우의 수를 이진수로 표현해, 이진수 하나로 배열을 사용하는 것 같은 효과를 준다.
    • 재귀 함수
      • 반드시 종료 조건을 포함해야 한다.
      • 문제 풀이 과정에서 비슷한 논리가 반복되어 풀이 과정의 일부가 전체 과정과 유사한 문제에 사용한다.
    • 순열 (Permutation)
      • 서로 다른 N개에서 r개를 뽑아 나열한다.
      • 파이썬은 itertools의 permutatons 사용
      • 만약 순서와 관계없이 N개에서 r개의 배열을 나타낸다면 조합(combinations)을 사용한다.
    • 백트래킹 : 모든 경우의 수 중 확실히 아닌 것을 제외하고 살펴보는 방법으로, 완전 탐색 + 예외를 추가한 if문
    • BFS & DFS : 자료에서 데이터를 탐색할 때 수평 방향으로(BFS)/위에서 아래로(DFS) 찾는 방법

기술 면접 준비


마찬가지로 최대한 1분에 맞춰 작성하려 했으나 쪼매 힘듦.

  1. 쿠키와 세션
    • 둘 다 http 프로토콜로 데이터를 저장하는 건데, 쿠키는 클라이언트에 데이터를 저장하고 세션은 서버에 데이터를 저장한다.
    • 세션 ID가 쿠키에 저장되어 사용자의 정보를 저장하고 정보 조회의 역할을 하기 때문에, 세션도 엄밀히 따지자면 쿠키를 이용하긴 한다.
    • 보안 면에서 쿠키는 브라우저 단에 보관되고, 암호화를 안 하기 때문에 보안에 취약하다.
    • 세션은 서버 측에 저장되기 때문에 암호화가 되고 좀 더 안전하게 정보가 저장된다. 따라서 개인정보나 비밀번호 같은 건 쿠키보단 세션에 저장하는 게 좋다.
    • 쿠키는 보통 브라우저 자동완성이나 쇼핑몰 장바구니에 활용한다.
    • 세션은 서버에 저장되는 정보기 때문에 트래픽이 몰릴 경우 서버 다운의 위험성이 존재하고, 따로 처리가 요구 되어 리소스 사용 면에서 불리하기 때문에 쿠키에 비해 속도가 느릴 수 있다.
    • 쿠키는 쿠키 하나당 4kb의 데이터를 저장할 수 있는 데 반해 세션은 저장 데이터에 제한이 없다.
    • 서버 증설 시 세션 데이터가 서버마다 다를 수 있다는 이슈가 존재한다.
    • 쿠키의 경우 만료시간 설정에 따라 브라우저 종료 이후에도 계속 남아있을 수 있지만, 세션은 브라우저 종료 시 만료시간과 관계 없이 삭제된다.
    • 이처럼 세션과 쿠키 각각 장단점이 존재하기 때문에 적절히 혼합해 사용하는 것이 좋다.
  2. OSI 7계층🔥 물데네전세표응 → 공식처럼 외우기
    • 통신 과정 중 문제가 발생할 경우 해당 부분에서만 해결하기 위해 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 OSI 7계층이라고 한다.
    • 1계층은 물리 계층으로, NIC와 같은 물리적 장치를 통해 전기 신호를 컴퓨터가 이해할 수 있는 디지털 신호로 받아들이는 부분이다.
    • 2계층은 데이터 링크 계층으로, 1계층에서 받아들인 전기 신호를 바탕으로 데이터를 컴퓨터로 안전하게 전달하는 부분이다.
    • 2계층에서는 맥주소를 알아야 한다. 컴퓨터의 주소에는 물리 주소와 논리 주소가 있다. 맥주소는 이중에서 물리 주소에 해당한다. IP는 논리 주소에 해당한다.
    • 2계층에서 활용되는 장비에는 스위치와 브리지 등이 있다.
    • IP는 바뀔 수 있는 반면, 맥주소는 각 기기에 할당되어 있는 고유한 주소다.
    • 2계층은 이 맥주소를 바탕으로 어딘가에 존재하는 컴퓨터를 찾아가는 역할을 한다.
    • 3계층은 네트워크 계층으로, 여기서부터 IP 주소가 활용되기 시작한다. 다른 네트워크로 데이터를 보내기 위한 경로 배정, 즉 라우팅을 담당한다. 그리고 그걸 수행하는 장비가 라우터.
    • 4계층은 전송 계층으로, 신뢰성 있는 전송을 위해 TCP 프로토콜이, 효율적인 전송을 위해 UDP 프로토콜이 활용된다. 방화벽으로 특정 포트를 제한하는 기능이 4계층에서 수행된다.
    • 5계층은 세션 계층으로, 동기화를 이용해 통신을 관리한다.
    • 6계층은 표현 계층으로, 인코딩이나 암호화를 이용해 데이터를 표현하는 등 언어 지원 부분을 담당한다.
    • 7계층은 응용 프로그램 계층으로 최상위 계층에 해당한다.
    • 7계층에서 브라우저가 실행되고, HTTP 요청을 보내는 등 응용 서비스를 수행함으로써 사용자와 직접적으로 접촉한다.
    • 7계층과 관련해 포트 개념 알아두기
      • 7계층을 따라가다 보면 특정 컴퓨터에 접근하게 되는데, 같은 컴퓨터라 하더라도 실행하는 프로그램이 다르다.
      • 이때 찾아가야 하는 프로그램이 어디에 있는지, 어떤 프로그램에 데이터를 갖고와야 하는지를 나타내주는 게 포트! 즉 다시 말해 컴퓨터에서 실행중인 응용 계층으로 가기 위한 길을 표시해준다.
      • 가령 HTTP 응용 계층에 있는 프로그램에 데이터를 전송하려면 80번 포트로 가면 되는 것.
  3. 🔥 각 계층에서 활용되는 포로토콜과 장비를 같이 알아두면 좋다.
  4. 🔥 해당 레이어에 대해 각각 설명하고 → tcp/ip 4계층이 실무에서 활용되더라 → 계층이 올라갈수록 하드웨어에서 소프트웨어로 가까워지는 경향이 있다.
반응형

+ Recent posts