백만 년 만에 쓰는 블로그 이틀 동안 얼마 못 자서 잠이 오지만 지금 써야 할 것 같아서 쓰는 글이다.기술 회고, 트러블슈팅 이런거 아니고 한 달 반동안 겪었던 내 마음을 담은 일기다. 코딩을 해 온 4년 반 동안 근 한 달이 제일 즐거웠다. 살면서 제일 행복했던 순간들 중 하나인 것 같다. 코딩하는 매 순간이, 모든 팀플들이 너무 괴로웠다. 42경산에서 도망치고 난 뒤, 이제 마지막 기회라고 생각한 이 교육에서도 너무 괴로웠다. 나는 이제 열정도 용기도 없고 지치기만 하는데, 다른 사람들이 자체적으로 프로젝트를 진행했다며 발표하는 걸 보니까 숨이 막혔다. 그 사람들이 너무 즐거워 보여서, 내가 어떤 짓을 해도 그 사람들과는 같은 선에 설 수 없을 것 같아서 그랬던 것 같다. 내일이 오는 게 너무 ..
클라우드 컴퓨팅장점민첩성: IT 리소스의 구동이 빨라진다.탄력성: 비즈니스 요구에 따라 리소스 운용의 확장/축소가 용이하다.비용 절감가용성: 빠른 배포와 무중단 교체 가능단점제대로 활용하지 못하면 고비용활용 난이도가 어렵다. 개방형 클라우드사용자가 요금을 지불하고 서비스를 이용할 수 있도록 일반 대중에게 서비스 제공규모가 작은 기업이 내부 IT 관리의 부담을 줄이면서 이용하기 적합폐쇄형 클라우드자사의 IT 시스템 인프라 구축을 목적으로 클라우드 서비스를 자체 운영클라우드 인프라 구축과 운용을 아웃소싱대규모 기업의 IT 인프라를 안정적으로 운용하는데 적
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에..
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..