분류 전체보기
-
-
-
-
개발자로 삼성전자에 오기까지 (2022년 상반기)후기/본업 2022. 11. 4. 23:42
오랜만에 티스토리에 글을 쓰는 것 같다. 글을 쓰는 것을 나름 즐기는 편인데 시작이 어렵다. 그동안 가장 쓰고싶었던 삼성전자 합격 후기를 써보려 한다. (이 글에서는 서류, 코딩테스트, 그리고 면접을 어떻게 준비했는지를 자세히 설명하지는 않습니다.) 이직 결심 삼성전자라는 회사는 내가 컴퓨터공학을 전공하기 전부터 나에게 있어서 가장 익숙했고, 또 가장 가고싶은 회사였다. 하지만 내가 막 개발자로서 취업 준비를 시작할 무렵, 코로나로 인해 IT 업계가 급부상 하고, 그에 따라 개발자들의 수요-공급이 맞지않아, 업계 전반에 처우와 복지 개선이 이루어졌다. 취준생의 입장에서는 목표로 삼을만한 좋은 기업들이 많아지고, 실력을 갖춘다면 찾아주는 곳도 많아 굉장히 좋은 시기였다. 나도 소위 네카라쿠배당토라 불리는 ..
-
교착 상태, 경쟁 조건/상태, 세마포어와 뮤텍스, 메모리 관리CS기초/운영체제 2022. 5. 19. 15:02
데드락(=교착 상태)이 발생하는 경우 멀티 프로그래밍 환경에서, 두 프로세스가 서로 원하는 자원이 다른 프로세스에 할당되어 있어서 무한정 기다리고 있을 때 발생한다. 데드락 발생 조건 4가지 모두 성립해야 데드락 발생 (하나라도 성립하지 않으면 데드락 문제 해결 가능) 상호 배제(Mutual exclusion)자원은 한번에 한 프로세스만 사용할 수 있음 점유 대기(Hold and wait)최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 존재해야 함 비선점(No preemption)다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없음 순환 대기(Circular wait)프로세스의 집합에서 순환 형태로 자원을 ..
-
컴퓨터 구조, 프로세스 (메모리 구조, 상태 전이, 스케줄링)CS기초/운영체제 2022. 5. 17. 14:44
프로그램 작업 수행을 위한 일련의 명령어들의 모음 프로세스 디스크에 적재되어있던 프로그램이 운영체제의 PCB(Process Control Block)를 받아, 메인 메모리에 적재된 상태 운영체제는 프로세스 테이블을 사용해 각 프로세스 PCB를 관리한다. - Stack : 함수 호출 시 관련 지역변수, 매개변수같은 임시 데이터가 저장되는 곳. 컴파일 타임에 크기가 결정되기 때문에 무한히 할당할 수 없고 stack 영역을 초과하면 stack overflow 에러가 발생한다. - Heap : 동적으로 할당되는 데이터가 저장되는 곳으로 런타임에 크기가 결정됩니다. ex) malloc - Data Uninitialized data (bss) - 초기화되지 않은 변수(전역 변수, static 변수)가 저장되는 곳...
-
망분리 환경에서 Spring boot gradle 설정CS기초/웹 2022. 4. 3. 01:54
회사에서 Spring boot 프로젝트를 Spring initializr를 이용해서 초기 세팅을 하고 빌드를 했더니, 스프링 부트 의존성 라이브러리들을 땡겨지 못해서 gradle 빌드 에러가 났다. 플러그인 id 가 org.springframework.boot인 것을 maven central 레포지토리에서 끌고 와야 하는데, 망분리 환경이라 방화벽에 막힌 듯 했다. 이럴 경우 몇 가지의 해결 방법이 있다. 1. 핫스팟을 켜고 dependency 라이브러리들을 받아와 local repository에 넣어놓고 빌드때 이용한다. ( .m2 나 .gradle 같은 cache repository에 넣어놓고 사용 ) 2. 방화벽 설정을 변경하여 maven central 레포지토리에 접근 가능하도록 한다. 3. 자체..
-
React 와 Spring boot 서버CS기초/웹 2022. 3. 31. 16:21
회사에서 개발하면서 삽질한 내용을 적어보고자 한다. 프론트는 React + Typescript 를 사용해서 SPA 구조로 개발했고, Spring boot 로 REST api 를 개발하였다, 내장 톰캣을 사용해, 프론트와 서버를 같이 jar 로 말아서 배포해야했다. 사실, 배포 단위를 나누는 것이, 변화에 대한 수용에 용이하게 해주어서, 프론트와 백을 각각의 웹 어플리케이션 서비스로 띄우고, 웹서버를 앞단에 두어서 리버스 프록시 설정을 하는게 좋다. (보안상으로도 좋다고 한다) 예를들어, 프론트를 3000번 포트에 띄우고, 스프링 서버를 8080포트에 각각 띄운다음에, nginx 설정을 통해서, /api/ 로 요청이 들어오면 8080포트로, 그 외에는 3000번 포트로 요청을 보내주게끔 하면, 포트 번호를..