서버 관리의 어려움 서버를 관리하는 일은 매우 복잡하고 어려운 작업이다. 만약 서버를 개발할 때 개발 환경이 바뀌게 된다면 컴퓨터 세팅이나 프로그램 등을 처음부터 다시 설정해야 한다. 시스템 환경, 방화벽, 네트워크 설정, Dependency, 각종 개발 프로그램 설정 등... 이러한 방식은 매우 번거롭다는 문제점이 발생한다. 특히 DevOps나 MSA가 유행하면서 Micro Service들이 잘게 나뉘면서 관리가 더욱 복잡해지게 되었다. 게다가 새로운 툴은 끊임없이 나오고, 클라우드의 발전으로 설치해야 할 서버가 매우 많아지는 상황에서 서버 관리 방식의 변화가 필요했다. 이러한 상황 속 어려움을 해결해줄 도커(Docker)가 등장하게 되었다. 도커(Docker)란 무엇인가? 도커는 컨테이너 기반의 오픈..
아스키 코드란? 아스키 코드(ASCII)는 American Standard Code for Information Interchange를 줄인 말이다. 이름 그대로 미국에서 정의한 정보 교환용 부호체계이다. 아스키 코드는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 1바이트로 구성되어 있는 아스키 코드는 8비트(==1바이트) 중 7개의 비트만 사용한다. 나머지 1비트는 Parity Bit이라고 불리는 오류 체크를 위한 비트로 사용한다. 예를 들어 이진법으로 1000001이면서 십진법으로 65는 문자 'A'를 나타낸다. 이처럼 알파벳을 포함, 영문 키보드로 입력할 수 있는 모든 기호들이 아스키 코드로 할당되어 있다. 매우 단순하고 간단하여 많은 곳에서 사용되었다. 하지만, 아스키 코드는 7개의 비트만을..
아틀라시안(Atlassian)이란? 아틀라시안은 오스트레일리아의 시드니에 기반을 두고 있으며 소프트웨어 개발자들을 타깃으로 하는 전사적 소프트웨어를 만드는 기업이다. 아틀라시안에서 제공하는 유명한 제품들로는 지라(Jira), 뱀부(Bamboo), 비트버킷(Bitbucket) 등이 존재한다. 카카오와 같은 국내 유명 대기업들에서도 아틀라시안이 제공하는 소프트웨어를 많이 사용하고 있다. 내가 입사한 회사에서도 아틀라시안의 지라, 뱀부, 비트버킷 등을 이용한다. 따라서 이에 대해 포스팅해보고자 한다. 우선 우리 회사에서 주로 사용하는 제품들만 소개해보도록 하겠다. 지라(Jira) 지라는 이슈 및 작업을 관리할 수 있는 협업 툴이라고 볼 수 있다. 큰 아이디어를 사용자 스토리, 이슈 및 작업으로 팀 전반에서 관..
CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법이다. CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포이다. 즉 CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 인테그레이션 헬(intergration hell))을 해결하기 위한 솔루션이다. 특히, CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 라이프사이클 전체에 걸쳐 지속적인 자동화와 모니터링을 제공한다. 이러한 구축 사례를 일반적으로 "CI/CD" 파이프라인이라고 부르며, 개발 및 운영팀의 애자일 방식 협을 통해 지원된다. CI (Continuous Integration)이란? CI는 개발자를 위한 자동화 프..