본문 바로가기

분류 전체보기

XX 회사 면접 후기 XX 회사 임원면접을 봤다. 신입때 말고 경력면접은 XXX 이후 오랜만에 본것같다. 약 1시간 30분 동안 2 대 2 면접으로 진행됐다. 경력직 면접으로 생각하여 같이 면접보시는 분이 경력자인줄 알았는데 신입분이셨다. 간단한 자기소개만을 생각하고 갔었는데 자기의 색깔을 나타내며 자기소개해보라는 말에 당황한 나머지 긴장한 목소리로 떠듬떠듬 말했다. 다행히 이를 눈치 챈 면접관분들이 편안한 분위기로 면접을 진행해주셔서 도중에 긴장은 풀렸으나 면접에 대해 아쉬웠던 점이 너무 많다. 1. 열정에 대해 제대로 어필하지 못함 - 학창시절 한 학기 4.5학점을 목표로 하여 이루었던 것처럼 이 목표를 이루기 위해서는 '이러이러한 노력을 해서 성과를 이룰 수 있었다'와 같은 사례처럼 구체적으로 설명했으면 좋았을 것 같다.. 더보기
DeadLock에 관해서 알아보자 * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. DeadLock(교착상태) DeadLock을 설명할 때 교차로에서 차들이 서로에게 막혀 움직이지 못하는 그림이 자주 참고된다. 그렇다면 운영체제에서 DeadLock이란 무엇을 의미할까? 위키백과의 정의를 인용해보면 두개 이상의 작업이 상대방의 작업이 완료되기를 기다리며 자신의 작업을 수행하지 못하는 상태를 의미한다. 이것만 보면 DeadLock이 무엇인지 감이 잡히지 않을것이다. 운영체제에서 DeadLock이 무엇인지, 그리고 어떻게 발생하는지 자세히 알아보자 DeadLock 발생조건 1) Mutual Exclusion : 자원을 사용할 때 하나의 프로세스만 사용되는 특성을 의미 2) Hold And Wait : 프로세스가 자.. 더보기
Race Condition(경쟁 상태)이 발생하는 사례란? * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. Race Condition(경쟁 상태) - 특정 변수의 값을 증가시키거나 감소시키는 작업은 여러 개의 명령어로 구성되어 있어, 서로 다른 프로세스가 동일한 변수를 동시에 증가시키거나 감소 시키는 작업 시 순서가 예상과 다르게 작동하면 결과값에 영향을 줄 수 있는 상태를 의미 * 프로그램적으로 해결할 수 있는 조건 1) Mutual Exclusion - 프로세스가 Critical Section 부분을 수행 중일 때 다른 프로세스가 Critical Section에 진입하면 안됨 2) Progress - Critical Section을 수행하는 부분이 없다면 프로세스를 진입할 수 있게 해줘야함 3) Bounded Waiting - .. 더보기
CPU 스케줄링이란? * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. 운영체제는 메모리에 할당된 여러 프로세스에게 어떻게 CPU를 할당할지 결정해야한다. 이를 위해서 다양한 CPU 스케줄링은 사용하며 이번 게시물은 CPU 스케줄링이 어떤 것이 존재하는지 알아보며 이를 설명하기 위한 용어들을 알아보자 장기 스케줄링 - 프로그램을 실행할 때 프로그램을 메모리에 할당할지 결정하는 방법 - 현재 운영체제에서 사용되지 않는다 중기 스케줄링 - 메모리가 부족하여 디스크의 일부를 메모리처럼 사용할 때 어떤 프로세스를 메모리에서 제거할지 결정하는 방법 단기 스케줄링 - CPU를 Ready Queue에 존재하는 프로세스에게 어떻게 할당할지 결정하는 방법 CPU 스케줄링 - 단기 스케줄링을 의미 디스패처 - CP.. 더보기
프로세스에 관하여 알아보자 * 본 내용은 운영체제를 공부하며 추후 복습하기 위해 포스팅하는 게시물입니다. 프로세스란?? - 메모리를 할당받아 실행되고 있는 프로그램을 의미 - 프로그램의 모든 영역이 메모리에 올라가지 않음(Page 단위로 분할하여 필요한 부분만 메모리에 할당) 프로세스는 메모리를 할당받을 때 프로그램 내 주소를 논리적 주소로 변환한다. 즉 프로그램의 논리저 시작주소는 0이며CPU가 프로세스를 수행하기 위한 메모리 접근 시 이러한 논리적 주소를 레지스터와 하드웨어를 이용하여 메모리의 물리적 주소로 변환하여 접근한다.(가상 메모리 챕터에서 자세히 다룰 예정) 프로그램을 실행하면 다음과 같은 상태들을 나타낸다. New : 프로세스를 생성중인 상태 Ready : Ready Queue에 존재하여 CPU를 할당받기를 기다리고.. 더보기
코드성 데이터를 Java Enum으로 관리하는 방법에 대한 고찰 고정된 코드성 데이터를 가져오는 방법으로는 여러가지 방법이 존재합니다. 1) DB 테이블로 관리하며 SELECT 쿼리를 통해 가져오는 방법 2) 애플리케이션단에 정의하는 방법 두번째 방법으로 개발 시 관리를 효과적으로 할수 있을까?라는 고민에서 시작되었습니다. 예시는 다음과 같습니다. 국제팩스를 발송하는 애플리케이션을 개발하기 위해서는 필요한 데이터가 존재하며 데이터는 다음과 같습니다. 국가코드, 국가명, 포인트 Enum 클래스를 작성하여 국가코드를 기준으로 오름차순 정렬합니다. //국가코드로 정렬 public enum InterPriceEnum { USA(1, "미국", 93), RUSSIA(7, "러시아", 591), GERMANY(49, "독일", 307), AUSTRALIA(61, "호주", 35.. 더보기
Syn Flooding 발생했던 사례 운영하고 있던 서비스의 요청/응답이 느려지는 사건이 발생하였습니다. 갑작스레 발생한 사건에 몇 시간 동안 원인을 분석해보니 Syn Flooding이 발생했던 사례였습니다. 이번 사건을 통해 Syn Flooding이 어떻게 발생하였는지, 그리고 대응방안은 무엇인지 알게되었던 것 같습니다. Syn Flooding Syn Flooding은 TCP 연결과정(3-way handshaking)에서 발생하는 공격입니다. 보통 http 프로토콜을 이용한 요청(REST API)은 TCP 프로토콜 위에 요청됩니다. TCP 연결이 필요하기 때문에 3-way handshake 과정이 반드시 필요합니다. 우선 3-way handshak이 무엇인지 알아보도록 하죠. 3-way handshake 1. Client는 특별한 세그먼트.. 더보기
SQL 문제풀이 6) 실력이 조금씩 상승하고 있는것을 느낍니다. 난이도 Medium 단계의 문제를 풀었는데 풀이도 보지 않고 얼마 걸리지 않았네요. 문제의 요구사항은 다음과 같습니다. code 별, power 별 최소한의 코인이 필요한 데이터를 출력하라 non-evil인 wand를 사야하며 id, age, coins_needed, power를 출력하라 power를 기준으로 내림차순 정렬하며, 같은 power일경우 age를 기준으로 내림차순 정렬하라 Wands 테이블 id code coins_needed power 1 4 3688 8 2 3 9365 3 3 3 7187 10 4 3 734 8 5 1 6020 2 6 2 6773 7 7 3 9873 9 8 3 7721 7 9 1 1647 10 10 4 504 5 Wands_pro.. 더보기