목록항해 99 (94)
나의 개발일지(김지헌)
오늘은 기술 면접을 봤는데 스레드에 대해 질문하셨는데 공부가 부족해서 대답하지 못했다. 그래서 공부를 해야 할 거 같아서 정리하는 겸 써봐야 할 거 같다 프로세스(process)란? 프로세스(process)란 단순히 실행 중인 프로그램(program)이라고 할 수 있습니다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말합니다. 이러한 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성됩니다. 이것보다 더 작은 실행 단위는 스레드이다. 프로세스마다 최소 스레드 1개는 만들어진다. 스레드(thread)란? 스레드(thread)란 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미합니다. 모든 프로세스에는 한 개 이상의 스..
오늘은 6시에 수료식을 했다. 앙케이트 같이 투표를 해서 상을 줬었다. 잘 들어줬어 넌 항상 을 받았는데 의지가 되는 동료 였다는게 정말 기쁘게 느껴졌고 좋았다. 내일은 면접이여서 기술 면접 준비를 하고 있는데 생각보다 머리게 잘 들어오지 않는거 같고 이해하는게 조금 힘든거 같다 한번에 많이 넣는다는 느낌이라 빡센거 같다. 하지만 준비를 잘해서 내가 발전 할 수 있는 회사에 취업해서 재미있게 놀고 싶다. 40. 동시성과 병렬성을 비교하여 설명해주실 수 있을까요? 동시성동시에 실행 되는 거 같이 보임 한번에 많은 것은 처리, 논리적인 개념 싱글코어에서 멀티쓰레드를 동작 시키는 방식 동시성은 적어도 두 개의 스레드가 진행 중일 때 존재하는 조건이며, 가상 병렬 처리의 한 형태로 시간 분할(time-slici..
32. TCP 3 way handshake란 무엇인지 설명해주실 수 있을까요? TCP 3 way handshake TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정(Connection Establish) 하는 과정 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달이 시작하기 전에 한 쪽이 다른 쪽이 준비되었다는 것을 알 수 있도록 한다. 즉, TCP/IP 프로토콜을 이용해서 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. TCP의 3-way Handshaking 과정 [STEP 1][STEP 2][STEP 3]위와 같은 방식으로 통신하는것이 신뢰성 있는 연결을 맺어..
23. 모든 요소에 인덱스를 걸지 않는 이유는 무엇일까요? 인덱스 인덱스는 테이블에서 원하는 데이터를 쉽고 빠르게 찾기 위해 사용하는데 테이블의 특정 컬럼에 한개 이상을 주면 인덱스 테이블이 따로 만들어진다. 인덱스 테이블에는 원래 테이블의 값과 rowId를 저장하는데 데이터를 갱신할 때 원본테이블은 물론 인덱스 테이블도 데이터를 갱신시켜야 하기 때문에 속도가 느려진다. 그래서 모든 요소에 인덱스를 사용하지 않는다. 24. 이분탐색이 무엇이고 시간복잡도는 어떻게 되며 그 이유는 무엇인가요? 이분탐색(Binary Search):전제 조건 오름차순 또는 내림차순으로 정렬시간복잡도가 매우 줄어든다. 10만개의 데이터를 가진 DB에서 순차 탐색과 이분 탐색의 Worst case를 비교하면 순차 탐색은 10만번의..
오늘도 기술면접 준비를 했다 생각 보다 오래 걸리고 이론을 알기가 쉽지않은거 같다 더보기 Promise란 무엇인지 설명해주실 수 있을까요? 프로미스란? 객체는 비동기 작업이 맞이할 미래의 완료 또는 실패와 그 결과 값을 나타냅니다.이행 fulfilled : 연산이 성공적으로 완료됨. 거부 rejected : 연산이 실패함. 대기 pending : 이행하지도, 거부하지도 않은 초기 상태. 9. Hoisting이란 무엇인지 설명해주실 수 있을까요? 자바스크립트 런타임시 선언해둔 변수와 함수를 가져가서 메모리에 기억을 해두고 호출시 실행해주는것 즉 함수가 실행되기 전에 안에 있는 변수들을 범위의 최 상단으로 끌어올리는 개념 10. 개발자로서 본인의 장단점과 근거가 되는 경험을 말씀해주실 수 있을까요?(협업 능..
오늘은 기술 면접을 질문 들을 준비해서 정리하는 시간을 가졌다. 솔직히 아직 개념이 잘 안잡히는거 같다. 더보기 프레임워크 : 개바르이 다양한 기능을 통합한 공통적인 개발환경 라이브러리 : 공통으로 사용될 수 있는 특별 기능들의 집합 시간복잡도와 공간복잡도가 무엇인지 설명해주실 수 있을까요? 시간 복잡도(Time Complexity) : 특정한 크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지를 의미 (알고리즘을 위해 필요한 연산의 횟수) 시간 복잡도를 표현할 때는 빅오(Big-O) 표기법을 사용한다. 빅오 표기법이란 간단히 말해, 가장 빠르게 증가하는 항만을 고려하는 표기법이다. 빅오 표기법 : 알고리즘의 효율성을 표기해주는 표기법이다. 알고리즘의 효율성은 데이터 개수(n)가 주어졌을 때 덧셈, 뺄..
오늘은 10시에 이력서 특강을 듣고 이력서를 작성 했다. 특강에서 한 페이지에 내용이 담겨 있으면 좋을 꺼 같다 라는 내용과 잘 쓰는 꿀팁 등 여러가지 정보를 제공했었다. 구글 docs에서 이력서를 작성을 할려고 했지만 내용을 많이 적을 수가 없었기 때문에 노션으로 작성을 했다. 처음 작성 해보는 이력서라서 어떻게 적어야할지 감이 오지 않았고 프로젝트에서 경험했던 일들과 막혔던 부분들을 잘 녹이는게 힘들었던거 같아서 피드백을 받고 개선을 해봐야 할꺼 같다. 실전 프로젝트에서 조금 더 해보고 싶었던것들이 있었는데(람다를 이용한 이미지 리사이징) 개선할 시간이 없을꺼 같긴하다. 이력서를 쓰면서 항해99 시작부터 지금까지 해온 것들을 되돌아 보는 시간을 가지면서 부족했던 점과 성장한 부분들이 보였고 결과물이 ..
6주간의 프로젝트가 끝나고 처음 만끽하는 주말에 들뜬 마음으로 하루를 보냈고 이번 주 부터 진짜 시작이라는것을 이력서 특강을 들으면서 크게 와닿았다. 프로젝트를 진행하면서 실력이 느는게 몸소 느껴지고 내가 성장 했다는 느낌도 많이 받았고 재미있게 느껴져서 신기 했었다. 지금까지 해왔던 프로젝트들을 되짚어 보며 이력서에 잘 녹여내서 만들면 좋을꺼 같다. 멘토링 시간에 많은 이야기를 했었고 기술 면접 질문들을 저희에게 물어보았는데 알고 있던 질문들도 막상 대답을 할려고 하니 제대로 하지 못했고 많이 부족 했다라는 것을 느낀 하루였다. 많이 성장하면서 많은 것들을 배웠고 그에 따른 지식도 필요하기에 이력서를 쓰고 피드백 받으면서 준비를 하면 좋을꺼 같다.