이론

·이론
Maven에서 사용할 수 있는 명령어들을 정리해서 작성해보고자 합니다. 업무에서 Jenkins를 주로 사용하는데 Maven 명령어들이 많이 나와 이를 공부하고자 합니다. 아래의 내용은 Maven 공식 페이지를 참조했습니다. http://maven.apache.org/ref/3.6.3/maven-embedder/cli.html Maven Embedder – Maven CLI Options Reference maven.apache.org 먼저 Maven에서 사용할 수 있는 명령어들입니다. compile -> 컴파일 수행 test -> 컴파일 수행 후 테스트 클래스 수행 package -> 컴파일을 수행하고 컴파일한 소스를 packaging 양식에 맞춰 프로젝트 내 지정한 경로 디렉토리에 생성 install ..
·이론
면접질문에서 질문받았던 TCP와 UDP의 차이를 다뤄보고자 합니다. 많이 질문받았던 만큼 이 부분은 기본적으로 알고 있어야 한다고 생각합니다. TCP는 Transmission Control Protocol을 의미하며 네트워크 계층 중 전송 계층에서 사용하는 프로토콜입니다. 장치들 사이에 논리적인 접속을 성립시키기 위해 연결을 설정하여 신뢰성을 보장하는 연결형 서비스입니다. 3-way handshaking을 통해 연결을 설정하고, 4-way handshaking을 통해 연결을 해제합니다. 흐름제어를 가지고 있어 데이터 처리속도를 조절하여 수신자의 버퍼 오버플로우를 방지합니다. 또한 네트워크 내의 패킷 수가 넘치지않게 방지하는 혼잡제어를 가지고 있으며 신뢰성이 높은 전송입니다. UDP는 User Datagr..
·이론
IT 직무에 있어서 자주 듣는 개념들인데 이 부분을 확실하게 정리해보고자 합니다. 먼저 CI는 Continuous Intergration을 의미하며, 지속적인 통합입니다. 개발자를 위한 자동화 프로세스를 말하며 애플리케이션에 대한 새로운 코드 변경 사항들이 정기적으로 빌드 및 테스트 되어 공유 저장소에 통합되면서 여러 개발자가 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있습니다. CI가 나오기 전 까지는 개발을 끝마치면 배포를 해야지만 코드에 오류가 있는지, 올바르게 작동하는지를 검증할 수 있었습니다. 하지만 CI를 적용하게 되면 각자의 개발자가 자신의 기능을 구현하고 완성되면 Main 브랜치와 통합하고 빌드 및 정상적으로 동작하는지 테스트할 수 있습니다. 간..
·이론
Grafana는 오픈 소스 시각화 및 분석도구입니다. Prometheus,, InfluxDB, Elasticsearch 등 여러 데이터 소스와 통합이 가능하며, 시계열 메트릭 데이터를 표현하기에 좋습니다. 특히, Prometheus와 Grafana 둘 다 Grafana Labs에서 관리하고 있기 때문에 두가지를 연동해서 많이 사용합니다. 데이터베이스와 연동하여 시각화 대시보드를 제공해주며 커스터마이징이 좋은 편이다. 많은 장소의 데이터를 단일 대시 보드로 결합할 수 있는 도구입니다. Grafana 대신 Kibana도 또 다른 시각화 도구이지만 Kibana는 ELK스택에 최적화 되어있기에, Prometheus와 시계열 데이터가 많다면 Grafana를 주로 선호하고 있습니다. 시각화를 포함해서 차트, 그래프..
·이론
쿠버네티스에서 모니터링 시스템을 구착한다면 많은 사람들이 Prometheus를 사용합니다. 동시에 Grafana, AlertManager 등과 같은 솔루션을 연동해서 사용하는 편입니다. 그 중 Prometheus에 대해서 공부해봤습니다. Prometheus는 메트릭 수집, 시각화, 알림 기능을 모두 제공하는 오픈 소스 모니터링 시스템입니다. Pull방식으로 메트릭을 수집하며, 시계열 데이터를 저장합니다. Node Exporter가 설치된 머신의 CPU, Memory 등의 메트릭 정보를 수집하고, Client Library는 애플리케이션 코드를 계측하기 위해 쓰입니다. 다른 것들도 많지만 주로 Node Exporter를 많이 사용하는 것으로 보입니다. 시각화 영역으로는 Grafana를 많이 쓰기에 제가 이..
·이론
DevOps에서 IaC를 사용하여 인프라를 관리하는데, IaC를 사용하면서 편리한 인프라의 재구성과, 테스트 및 실행을 할 수 있습니다. 이러한 IaC의 대표적인 도구들은 Terrform, Ansible, Puppet 등이 있습니다. Terraform(테라폼) - Hashicorp 언어를 사용하며 사용자 친화적이다. - 오케스트레이션 도구로서, 어떤 부분이 제대로 작동하지 않을 경우 자동으로 계산해서 리로드를 시도한다. - 선언적 언어이다. - EC2를 5대 배포해야할 때 테라폼은 EC2 = 5, 이후 8대로 늘려야 하면 EC2 = 8 로 한다. Ansible(앤서블) - 가볍고 배포기능이 빠르다. - 구성관리 도구로서, 시스템을 재설정하지 않고 시스템을 교체하는 대신 문제를 복구하려고 한다. 그렇기에 ..
·이론
DevOps의 더 자세한 정보를 알기 위해 조사해봤습니다. DevOps - Development + Operations 이며 소프트웨어의 개발(Development)과 운영(Operations)의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다. 데브옵스는 소프트웨어 개발조직과 운영조직간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다. -위키백과 DevOps는 어떠한 기술이라기 보다는 개발과 운영을 동시에 하여 소통과 협업을 강조하는 하나의 문화를 말합니다. DevOps직무는 말그대로 한 명의 프로그래머가 개발과 운영을 동시에 하는 것 같습니다.실제로도 풀스택개발자(프론트+백)이..
·이론
개인 프로젝트를 진행하던 중 문득 이런 생각이 들었습니다. 'www.naver~~~'는 URL인데 내가 카카오 App에서 필요한 Redirect URI는 왜 URI지? 맨 처음에는 URI랑 URL이 오타거나 별 차이 없는 단어들이라고 치부했었습니다. 하지만 검색해보니 어느 정도는 비슷하지만 구분이 되는 단어였습니다. URL은 Uniform Resource Locateor로 즉, 인터넷 상 자원(파일)의 위치를 의미합니다. 또한 흔히 웹 주소라고 불립니다. URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성입니다. 범위로 따지면 URI는 URL을 포함하게 됩니다. URI가 더 큰 개념입니다. URI는 식별하고, URL은 위치를 가르킨다고 생각하시면 ..
지나가는 지식들을 모아두기
'이론' 카테고리의 글 목록