OSI 7 Layers계층설명7. 응용 계층(Application Layer)사용자가 네트워크에 접근할 수 있도록 서비스를 제공한다. 일반적인 응용 서비스를 수행한다.6. 표현 계층(Presentation Layer)세션 계층 간의 주고받는 인터페이스를 일관성 있게 제공한다.5. 세션 계층(Session Layer)통신 시스템 사용자 간의 연결을 유지하고 설정한다.4. 전송 계층(Transport Layer)호스트 시스템에서 발생하는 데이터의 흐름을 제공한다.3. 네트워크 계층(Network Layer)데이터를 가장 안전하고 빠르게 목적지로 전달하는 기능(라우팅)을 담당한다.2. 데이터 링크 계층(Data Link Layer)MAC 주소를 통해 통신하며, 에러 검출, 재전송, 흐름 제어를 담당한다.1. ..
CISC, RISC CISCRISC특징명령어의 길이가 가변적고정된 길이의 명령어장점컴파일러 작성이 쉽다.복잡한 명령도 실행 효율이 좋다.호환성이 좋다.각 명령어가 한 클럭에 실행되도록 고정되어 있어서 파이프라인 성능에 최적화 되어 있다.명령어 해석 속도가 빠르며, 여러 개의 명령어를 처리할 수 있다.단점하나의 명령어가 복잡하여 해석에 시간이 오래 걸린다.해석에 필요한 회로가 복잡하다.동시에 여러 개의 명령 처리가 어렵다.컴파일러의 최적화 과정이 복잡하다.코드 효율이 낮다. 컴파일러, 인터프리터 컴파일러인터프리터특징프로그램 전체를 한 번에 기계어로 번역프로그램 실행 시 한 번에 한 문장씩 번역장점실행 시간이 빠르다.실행 전에 오류를 알 수 있다.실행 시간이 느리다.단점초기 컴파일 시간이 오래 걸린다.메모..
보수1의 보수: 주어진 이진수의 모든 비트를 반전시킨다.2의 보수: 1의 보수를 취한 뒤 1을 더한다.둘의 차이점은 1의 보수에서는 -0과 +0이 존재하지만 2의 보수에서는 0이 하나라는 점이다. 실수실수는 아래의 두 방식으로 표현할 수 있으며,부동소수점 연산은 정수 연산에 비해 일반적으로 시간이 더 걸리고, 정밀도에 한계가 있을 수 있다.고정 소수점부동 소수점 컴퓨터 연산 하드웨어부울 대수: 0과 1 두 개의 값으로만 표현하고 연산하는 대수학이다.ALU(Arithmetic Logic Unit): CPU의 중요한 부분을 차지하며, 컴퓨터에서 쓰이는 산술/논리 연산을 수행하는 회로이다. 폰노이만 구조입출력 장치CPU는 ALU(산술 논리 장치)와 현재 계산을 수행하는 값을 저장하는 프로세서 레지스터를 ..
Stack스택은 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 후입선출(가장 나중에 들어간 것이 가장 먼저 나오는) 방식이다.위 그림은 push('a'), push(1), push(3.14)를 실행한 예시이며, pop을 세 번 실행하면 3.14, 1, 'a' 순으로 나오게 된다.대표적인 스택의 활용 예시는 컴퓨터 프로그램의 콜 스택이다. 콜 스택은 컴퓨터 프로그램의 서브 루틴에 대한 정보를 저장하는 역할을 한다.장점: 구현이 간단하며, 데이터 쓰기/읽기 속도가 빠르다.단점: 데이터 최대 개수를 미리 정해야 하며, 저장 공간에 낭비가 발생할 수 있기 때문에 미리 최대 개수만큼 저장 공간을 확보해 놓아야 한다.스택이 사용되는 문제 유형은 다음과 같다.쌍을 이루는 요소를 찾는 문제ex) 괄호의 왼쪽 오른쪽 쌍이 맞..
파이프라인 모니터링Slack 알림 설정1. 슬랙 채널을 새로 만든다.2. 슬랙의 Tools&settings > Manage apps에서 Jenkins CI를 검색하여 Add to Slack을 누른다.3. 알림을 발행할 채널을 선택하고, Add Jenkins CI integration을 누른다. 그러면 해당 채널에 접근할 때 사용하는 토큰과 팀 서브도메인을 발행해준다.4. 젠킨스의 Manage Jenkins > Credentials > System > Global credentials에서 새 credentials를 생성한다.Kind는 Secret text, Secret에는 3에서 받은 토큰 값을 입력하고, ID는 slack-key로 지정한다.5. 젠킨스에서 slack notification 플러그인을 설치..
코드 커버리지1. 프로젝트의 루트 아래에 있는 /frontend/tsconfig.json 파일과 backend/tsconfig.json 파일의 exclude가 다음과 같이 설정되어 있는지 확인한다."exclude": ["src/**/*.test.ts", "src/**/__mocks__/*.ts"]2. 터미널에서 아래 명령어를 입력하여 코드 커버리지 패키지를 설치한다.sudo npm i -g c83. 프론트엔드의 단위 테스트 (코드 커버리지)는 다음과 같이 수행한다.c8 -r html -o coverage --all npm test -- --watchAll=false4. 커버리지 보고서는 프로젝트 루트 아래에 있는 /frontend/coverage/index.html로 접속하면 확인할 수 있다.5. 프로젝..
배포 환경 설정1. AWS에서 로그인을 한다.2. Launch Instance를 클릭해서 인스턴스를 설정한다.3. Key pair는 RSA, .pem으로 생성하고, 잊어버리면 안 되기 때문에 어딘가에 저장해 둔다. 이 Key pair은 노출되어서는 안 된다.4. security group을 적용하고, Elastic IP를 연결한다.5. 아래와 같은 명령어로 ssh로 접속한다.ssh -i ~/.ssh/lecture.pem 서버_도메인_이름6. Minikube를 활성화하고, systemctl status minikube를 실행했을 때 Active가 active(exited)가 될 때까지 기다린다.sudo systemctl enable minikubesudo reboot7. 로컬 컴퓨터의 kubeconfig에..
https://velog.io/@hyeok_1212/GDSC-Spring-Boot%EB%A1%9C-REST-API-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EA%B8%B0 [GDSC] Spring Boot로 REST API 만들어보기GDSC 서버 파트의 스터디를 위한 자료velog.io위 글을 참고해서 작성했다. 프로젝트 생성Group에는 회사 도메인 이름을 역순으로 작성한다.다 작성했으면 Next를 누른다.Lombok, Spring Web, Spring Web Services를 체크하고 Create를 누른다. 프로젝트 이름을 test로 했기 때문에 TestApplication이 생긴 것을 확인할 수 있다.위 사진과 폴더 구조가 동일해지도록 com.example.test 우클릭..
Selenium셀레니움은 웹 테스트 자동화 프레임워크이다. 기초Docker 실행아래의 명령으로 컨테이너를 생성하고, 실행하여 브라우저에서 http://localhost:4444로 접속해서 접속이 되는지 확인한다.docker run -d --rm -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome 테스트 코드 작성first_test.py 파일을 아래와 같이 작성하고, 실행하여 테스트를 진행한다.from selenium import webdriverimport timeprint("Test Execution Started")options = webdriver.ChromeOptions()options.add_argument('--ignore-ssl-err..