Time does not change us. It just unfolds us.

Etc 9

취업준비 도움 자료

뭘 해야될지 모르겠으면 구글에 2021 backend roadmap 을 검색해서 보라는 조언을 참고하자. 실리콘 밸리 직원들이 가장 많이 읽은 서적 참고하자 https://smjeon.dev/etc/interview-question/#%EA%B8%B0%EC%97%85-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EB%A6%AC%EC%8A%A4%ED%8A%B8 면접 질문 리스트 시간이 지나면서 축적되고 있어 중복된 질문이 있을 수 있습니다. 제보주시면 수정하겠습니다. smjeon.dev https://aerocode.net/371?category=798030 운영체제 정리 🦖 ch02. 운영체제 구조 운영체제 서비스 각각의 운영체제는 설계된 목적 과 자신만의 고유한 기능 이 있습니..

Etc/Study 2022.01.06

SonarQube와 Bamboo

Atlassian에서 SonarQube와 Bamboo를 사용하고 있어 개념들을 찾아봤다. sonarqube 소나큐브는 20개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석으로 자동 리뷰를 수행하기 위한 지속적인 코드 품질 검사용 오픈 소스 플랫폼이다. 소나큐브는 중복 코드, 코딩 표준, 유닛 테스트, 코드 커버리지, 코드 복잡도, 주석, 버그 및 보안 취약점의 보고서를 제공하는 정적 코드 분석 도구이다. 정적 프로그램 분석은 실제 실행 없이 컴퓨터 소프트웨어를 분석하는 것을 말한다. 대부분의 경우에 분석은 소스 코드의 버전 중 하나의 형태로 수행되며, 가끔은 목적 파일 형태로 분석된다. 이에 반하여 실행 중인 프로그램을 분석하는 것을 동적 프로그램 분석이라고..

Etc/Study 2021.12.28

Database 용어 정리

이번에 주문 예제 프로젝트를 진행하면서 회원 테이블을 설계하는데 간단한 용어들의 개념을 뚜렷이 알기 위해 정리해보았다. 출처: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC%9A%A9-1/lecture/24282?tab=note&speed=1.25 (인프런 강의 '실전!스프링부트와 JPA') 참고로 위와 같은 테이블에 있어서 Entity를 설계할 때 다대다 관계를 피하는 것이 좋다고 한다. (@ManyToMany 사용 지양) 참고: 외래 키가 있는 곳을 연관관계의 주인으로 정해라. > 연관관계의 주인은 단순히 외래 키를 누가 관리하냐의 문제이지 비즈니스상 우위에 있다고 주인으로 정하..

Etc 2021.11.17

[CS]UML과 Diagram

회사 내에서 전문가를 인증하는 프로젝트 과제를 수행했을 때 설계 내용을 발표자료에 담아내는 과정이 가장 어려웠던 기억이 있다. 선배 책임님께서 진행하시는 세미나에 참석해서 설명들은 내용을 바탕으로 조금 더 공부하고 정리하기로 했다. 먼저 key point를 정리하자면 아래와 같다. Class, Sequence, State Diagram Diagram reverse engineering UML(Unified Modeling Language) https://velog.io/@hanblueblue/UML-UML-%EA%B8%B0%EC%B4%88 [UML] UML 기초 UML기초 개념 및 UseCase Diagram 작성하기 velog.io UML의 기본적인 개념과 특징은 위 블로그에 자세히 나와있으니 참고하고..

Etc/Study 2021.10.25

[IPC]Shared Memory 응용

앞에서 공부한 예제 소스를 이해하여 스스로 새롭게 프로그램을 짠다. 이 때 cmd로 IPC_RMID를 전달하여 shmid를 clear 시켜준다. 또한 shmat함수의 아규먼트를 지정할 때 참고하자면 첫번째 아규먼트는 shmget을 이용해서 얻어낸 식별자 번호이며, 두번째 아규먼트는 메모리가 붙을 주소를 명시하기 위해 사용하는데, 0을 사용할경우 커널이 메모리가 붙을 주소를 명시하게 된다. 특별한 사항이 없다면 0을 사용하도록 한다. 세번째 아규먼트를 이용해서, 우리는 해당 공유메모리에 대한 "읽기전용", "읽기/쓰기가능" 모드로 열수 있는데, SHM_RDONLY를 지정할경우 읽기 전용으로, 아무값도 지정하지 않을경우 "읽기/쓰기 가능" 모드로 열리게 된다. ipcs -m 위 명령을 통해 공유메모 리를 확..

Etc 2021.10.22

[IPC]Shared Memory

공유 메모리(Shared Memory)는 IPC(Inter-Process Communication)의 한 가지 방법으로 프로세스간 통신이 필요할 경우 사용한다. 공유 메모리를 통한 통신은 둘 이상의 프로세스가 공통 메모리에 액세스 할 수 있는 개념으로 한 프로세스에서 변경한 메모리 공간의 내용을 다른 프로세스에서 접근할 수 있다. 공유 메모리의 생성 요청은 최초 공유 메모리 영역을 만드는 프로세스가 커널에 공유 메모리 공간의 할당을 요청함으로써 이루어지며 만들어진 공유 메모리는 커널에 의해서 관리된다. 만들어진 공유 메모리는 시스템을 리부팅하거나 직접 공유 메모리의 공간을 삭제시키지 않는 한, 공유 메모리를 사용하는 모든 프로세스가 없어졌다고 하더라도 공유 메모리의 공간은 계속적으로 유지되게 된다. 프로..

Etc 2021.10.22

[IPC]Semaphore

두 개 이상의 프로세스가 동시에 공유 메모리와 같은 공유 자원을 접근할때 동기화를 걸어주는 것을 목표로 한다. 운영 체계 또는 프로그램 작성 내에서 공유 자원에 대한 접속을 제어하기 위해 사용되는 신호를 말한다. 예를 들어, 공유 메모리에 여러 프로세스가 동시에 쓰기를 시도한다면 데이터가 손상되는 현상이 발생한다. 따라서 여러 프로세스 사이의 동작 순서를 지정해야 한다. 프로세스들이 공유 영역에 대한 접근 순서를 정하는 방법 중 하나가 세마포어이다. 병행 내지 병렬로 동작되는 둘 이상의 프로세서 사이에서 마이크로프로세서 시간이나 입출력 접속구와 같은 공유 자원을 동시에 사용할 수 없기 때문에, 한 프로세서가 사용하고 있는 동안에 세마포어를 세워서 다른 프로세서를 대기시키고 사용이 끝나면 해제시키는 방법으..

Etc 2021.10.22

[IPC]Semaphore C 예제

// 2021-04-07 kimso #include #include #include #include #include #include #include /* 세마포어 공용체 정의 */ union semun{ int val; struct semid_ds *buf; unsigned short *array; }; /* 세마포어를 생성하고 초기화 */ int initsem(key_t semkey){ printf("***initsem function ! \n"); union semun semunarg; int status = 0, semid; /* 인자로 받은 키를 지정해 세마포어 식별자 생성, return 값이 -1이고, errno 값이 EEXIST면 이미 존재하는 세마포어 식별자로 기존 식별자 읽어옴 */ sem..

Etc 2021.10.22

[IPC]Semaphore 함수

세마포어 관련 함수 기능 함수원형 세마포어 생성 int semget(key_t key, int nsems, int semflg); 세마포어 제어 int semctl(int semid, int semnum, int cmd, ...); 세마포어 연산 int semop(int semid, struct sembuf *sops, size_t nsops); 세마포어 생성: semget(2) 세마포어를 사용하려면 세마포어 식별자를 생성해야 합니다. 세마포어 식별자는 semget 함수를 사용해 생성한다. #include #include #include int semget(key_t key, int nsems, int semflg); key: IPC_PRIVATE 또는 ftok 함수로 생성한 키 nsems: 생성할 세마..

Etc 2021.10.22