본문 바로가기

분류 전체보기111

[Web] CI/CD에 대해 공부해보자 많이 들어 보았지만 정확히 무슨 용어인지를 공부해보도록 하자. CI/CD란? DevOps 엔지니어의 핵심 업무이다. (DevOps 엔지니어 : 코딩, 인프라 관리, 시스템 관리 및 DevOps 도구 체인을 포함하여 개발 및 운영에 대한 광범위한 지식을 갖춰야 하는 IT 전문가) 결론: CI = 빌드 및 테스트 자동화 CD = 배포 자동화 CI(Continuous Integration) 이란? 지속적인 통합이라는 의미이다. 지속적인 통합이란, 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합하는 것을 의미한다. CI가 필요한 환경은 어떤 조건들이 있는가? 1. 다수의 개발자가 형상관리 툴을 공유하여 사용하는 환경 : 자동화된 빌드와 테스트는 원천 소스코드의 충돌.. 2022. 12. 21.
[Web] 유닛 테스트, 통합 테스트, 기능 테스트에 대해 공부해보자 개발을 하다 보면 코드가 잘 동작하고 있는지 버그가 없는지 테스트를 해야한다. 이 테스트를 하는 방법과 종류를 테스트의 범위에 따라 분류해 보면 유닛 테스트, 통합 테스트, 기능 테스트로 나눌 수 있다. 테스트 케이스의 개수는 유닛 테스트, 통합 테스트, 기능 테스트 순으로 크지만 코드의 범위는 이의 역순이다. 유닛 테스트(Unit Test) 유닛 테스트는 코드 중 작은 부분을 테스트 하는 것이다. 함수 하나하나 각각 개별로 테스트 코드를 작성하는 것과 같다. 만약 테스트에 네트워크나 데이터베이스 같은 외부 리소스가 포함된다면 그것은 유닛 테스트가 아니다. 기본적으로 테스트를 위한 입력 값을 주어서 그에 대한 함수의 출력 값이 정확한지 아닌지를 판단하는 것이 유닛테스트라 할 수 있다. 코드의 설계가 별로.. 2022. 12. 21.
[알고리즘] 백트래킹에 대해 공부해보자 DFS? DFS는 끝이 나올 떄까지 한 방향으로 탐색하는 방식으로, 방향을 잘못 선정할 시 큰 손해를 볼 수 있다. Back Tracking : 해당 방향에 답이 없다고 판단되면, 되돌아가서 다른 방향을 탐색하는 기법 즉, 코딩에서는 반복문의 횟수까지 줄일 수 있으므로 효율적이다. 이를 가지치기라고 하는데, 불필요한 부분을 쳐내고 최대한 올바른 쪽으로만 가는 의미이다. 백트래킹은 모든 가능한 경우의 수 중에서 특정한 조건을 만족하는 경우만 살펴보는 것이다. 답이 될만한지 판단하고 그렇지 않으면 그 부분까지 탐색하는 것을 하지 않고 가지치기를 하는 것이 백트래킹이다. 문제 풀이에서 활용할 때는, DFS 등으로 모든 경우의 수를 탐색하는 과정에서, 조건문 등을 걸어 답이 절대로 될 수 없는 상황을 정의하고,.. 2022. 12. 19.
[네트워크] CDN에 대해 공부해보자 대용량 데이터를 주고받는 신기술이 등장함에 따라 이렇게 폭발적으로 증가한 데이터를 지연 없이 처리하기 위해서는 데이터를 분산해서 전달하는 기술이 필수적으로 필요했다. 이에 지리적으로 먼 거리에 떨어져 있는 사용자에게도 지연 없이 콘텐츠를 분산해 전달할 수 있는 CDN 서비스가 등장하게 된다. CDN이란? Content Delivery Network의 약자인 CDN은 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술이다. 서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화한다. CND은 각 지역에 캐시 서버를 분산 배치해, 근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버가 콘텐츠를 대신 전달한다. CDN이 필요한 경우는? 인터넷.. 2022. 12. 19.