목록개발자 삶의 질 상승 지식 (6)
이것도 알아야 하네?
■ Shell 개념 Shell 이란, 사용자와 Unix 계열 시스템 사이에서 인터페이스 역할을 한다. 사용자로부터 입력을 받고, 해당 입력을 기반으로 명령들을 처리하여 결과를 출력한다. ■ Shell Script 개념 Shell Script는 쉽게 이야기 하자면, Shell 환경에서 처리되는 명령어들의 모음이며, 작성된 순서대로 처리된다. Shell Script를 잘 이용한다면 방대한 양의 작업들을 자동화하여 효율적으로 처리할 수 있다. ■ Shell Script 작성 예시 > 표준 입력이 없는 Shell Script $ vi test.sh sh 확장자를 이용하여 테스트용 Shell Script를 생성한다. Shell Script를 작성 시에 가장 중요한 점은, 아래 문장을 파일 가장 첫 번째줄에 적어 ..
지난 시간까지 git에 대한 개념과 로컬 저장소를 생성하는 방법에 대해서 알아봤다. 해당 내용을 확인하고 싶다면 ⬇⬇⬇⬇⬇⬇ git 완벽 정리 시리즈 > 0. 개념 및 시작하기 ■ git flow 기본적인 흐름은 아래와 같다. local 환경에서 작업 시 작업하고 있는 현재의 폴더를 Working Diretory라고 하며, 자유롭게 파일을 변경할 수 있다. 만약 변경된 파일을 원격 저장소에 반영하고 싶을 시에는, git add 명령어를 통해서 변경 이력을 전송할 파일을 선택하여 Staging Area로 만들고, git commit 명령어를 통해서 전송할 상태로 Local Repository에 있는 파일을 업데이트 시켜준다. 그리고 마지막으로 git push를 해야지만 실제 원격 저장소의 파일들이 업데이트..
■ Version Control System(VCS) Git을 이해하기 위해서는 우선 Version Control System(VCS)의 개념부터 알아야한다. VCS란 시간에 지남에 따라 변경되는 파일의 이력을 효율적으로 관리할 수 있게 하는 시스템이다. 모든 이력을 다 가지고 있기 때문에, 만약 파일 변경 후 문제가 생겼을 때도 특정 시점의 파일 상태로 원복할 수 있다. Git도 이러한 파일 이력 관리를 위한 도구 중 하나이지만, 변경 사항을 관리하는 방법에서 다른 VCS(CVS, Subversion 등)과의 차이가 존재한다. 다른 VCS의 경우는 이전 파일과의 차이만을 저장하는 반면, Git은 현재 파일의 순간의 모습을 snapshot으로 저장한다. Git은 workspace에서 변경한 파일을 sna..
■ 권한 이번 시간에서는 Unix에서 제공하는 파일 및 디렉토리의 소유 및 접근 권한에 대해서 알아볼 예정이다. 해당 기능을 통해 사용자의 파일에 대한 권한을 제한하여 보안을 강화할 수 있다. Unix 계열 시스템에 존재하는 모든 파일 및 디렉토리는 아래의 속성을 가진다. Owner permissions - 파일 및 디렉토리의 소유자가 행사할 수 있는 권한 Group permissions - 파일 및 디렉토리의 소유 그룹에 포함된 사용자가 행사할 수 있는 권한 Other permissions - 모든 사용자가 파일 및 디렉토리에 행사할 수 있는 권한 ■ 접근 권한 확인 $ls -l ./ -rw-r--r-- 1 [owner_name] [group_name] 651 12 13 23:25 node.py -rw..
Docker의 라이프 사이클을 정리하면 아래와 같습니다. Docker Image는 개방형 Apache 라이선스에 따른 오픈 소스 기반 리포지토리인 Docker Registry에 저장/배포될 수 있고, 사용하기위해서는 로컬 내려받아 로컬의 Memory에 올리는 과정이 필요합니다. Registry부터 Memory까지의 과정을 지원하는 명령어는 아래와 같습니다. PULL: Registry에서 Image 다운로드 PUSH: Registry에 Image 업로드 RMI: Image 삭제 CREATE: Container 생성 COMMIT: Container를 Image로 저장 RM: Container 삭제 START: Container을 실행 RUN: 로컬에 Image가 없으면 PULL부터 실행되고, 로컬에 Imag..
데브옵스(DevOps)란? 개발(Development)와 운영(Operations)의 합성어로 소프트웨어 개발팀과 IT 운영팀이 협업하여 전체 사이클을 함께 관리하는 방식을 의미합니다. 개발자는 개발자는 개발이 완료된 시스템을 운영팀에게 이관하고 운영팀은 개발된 시스템을 배포/운영을 하는 것을 의미합니다. 기존에는 분리되어 있던 소프트웨어 개발팀과 IT 운영팀이 협업을 통해 더 빠르고 안정적으로 소프트웨어를 빌드, 릴리즈할 수 있습니다. 원활한 소통 및 공동 작업을 위해서 개발자는 운영자를, 운영자는 개발자를 생각하는 오픈 마인드를 가지고 커뮤니케이션이 뒷바침되어야 합니다. 노옵스(NoOps)란? 노옵스(NoOps)란 단어 그대로 운영자가 없다는 뜻입니다. 데브옵스는 서비스에 대한 사용자의 요청을 보다 ..