본문 바로가기

개발기술/빌드, 배포, 운영

(8)
로그 로그 레벨 기준레벨운영 로그에 포함의미 및 사용 기준ERROR✅ 필수예외 및 치명적인 오류 상황 (사용자 영향 有)WARN✅ 권장예상하지 못한 상태이지만 무시하고 넘어갈 수 있는 경우INFO✅ 제한적 사용주요 비즈니스 흐름 (ex: 유저 로그인, 주문 완료 등)DEBUG❌ 기본 제외디버깅용 상세 정보, 개발 환경 전용TRACE❌ 제외매우 상세한 흐름 추적, 거의 사용 안 함 운영환경 로그 전략ERROR, WARN은 무조건 포함INFO는 중요한 비즈니스 흐름만 찍음DEBUG는 절대 포함하지 않음 (오류 재현 시 임시로만 허용)Profile(prod, dev)에 따라 구분해서 관리 운영 로그에 INFO가 포함될 수 있는 경우사용자 액션이 중요한 흐름을 만들 때 (예: 결제, 로그인, 배치 완료)시스템 상태 ..
쉘 커맨드 , 쉘 스크립트 리눅스 쉘 쉘은 사용자가 운영체제와 상호작용할 수 있도록 명령어를 입력받아 실행해주는 프로그램입니다.모든 것은 파일이라는 철학 아래에서 인터렉션이 파일을 읽고 쓰는 것처럼 이루어져있음 (마우스, 키보드 디바이스 관련 기술도 포함)리눅스의 철학은 여러 기본단위의 프로그램들이 유기적으로 각자의 역할을 하면서, 이를 조합하여 전체 시스템이 동작하도록함.(ls | grep의 경우에도, lsgrep이란 명령어가 아닌 ls와 grep을 유기적으로 조합하여 사용함)리눅스에는 여러가지 shell이 있지만 ubuntu에서도 그렇고 bash shell이 범용으로 쓰이기에 bash 명령어 위주로 학습할것.Bash: 기본적인 쉘로, 많은 시스템에서 기본으로 제공됩니다. 간단하고 강력하지만, Zsh에 비해 기능이 제한적입니다...
원격제어 ; GUI 제어 MobaXterm MobaXterm is an all-in-one remote access tool for Windows that supports:SSH (Secure Shell)X11 ForwardingVNC (Virtual Network Computing) with built-in VNC viewer! RDP (Remote Desktop Protocol)FTP/SFTP (File Transfer Protocols)맥북이면 Remote DestTop Manager https://wscode.tistory.com/91 [MacOS] MobaXterm 대신 사용가능한 Remote Desktop Mananger주제: MobaXterm 대신 사용가능한 Remote Desktop Mananger 작성: 2023..
Jenkins CI/CD 자동화 https://youtubetranscript.com/?v=6YZvp2GwT0A&t=150 YouTube Transcript - read YouTube videos youtubetranscript.com Jenkins는 오픈소스 기반의 자동화 서버로, CI/CD(Continuous Integration/Continuous Delivery) 파이프라인을 구축하고 관리하는 데 널리 사용됩니다. Jenkins를 활용하면 소프트웨어 개발, 빌드, 테스트, 배포 과정을 자동화하여 개발 속도와 품질을 크게 향상시킬 수 있습니다.Jenkins CI/CD란?CI(Continuous Integration):코드 변경 사항을 지속적으로 통합하고 빌드 및 테스트를 자동화하는 프로세스입니다.Jenkins는 개발자가 변경한 코..
빌드와 Gradle 개념, Gradle 빌드 사용법 빌드개념 설명빌드(Build) : 소스 코드를 컴파일, 테스트, 패키징 등을 실행하여 컴퓨터가 실행할 수 있는 실행 파일로 만드는 과정컴파일 (Compile) : 프로그래밍 언어로 작성된 소스 코드를 기계어로 변환하여 실행 가능한 파일로 만드는 과정입니다. 예를 들어, Java 코드(.java)를 바이트 코드(.class)로 변환합니다. 페이지들을 한글로 번역하기컴퓨터는 사람이 작성한 고수준 언어(Java, C, Python 등)를 직접 이해하지 못하기때문에 하지 못하기때문에 기계어(또는 중간 언어)로 바꿔 CPU에서 실행할 수 있는 언어로 변경하는 과정패키징 (Packaging) : 컴파일된 파일을 하나의 패키지로 묶어 배포 가능한 형태로 만드는 단계입니다. Java에서는 .jar 파일이나 .war 파..
빌드 후 서버 배포 로컬배포mavenLocal 배포자체 library를 쓰는 프로젝트에서 local 배포를 진행할때 mavenLocal 저장소에 자체 library 빌드를 진행한다.clean build publishToMavenLocal -x testmavenLocal 배포 저장위치gradle 에서 아래의 두가지 변수에 따라서 배포파일의 위치가 결정된다.group = 'some.platform'version = '1.0.0'~/.m2/repository/{groupId}/{artifactId}/{version}/ 전체 빌드와 배포 프로세스개발 단계 : 개발자가 Java 코드를 작성합니다.빌드 : Gradle을 사용하여 전체 빌드 과정을 처리합니다.서버 배포.jar 파일( .class 파일의 묶음)을 실행시키기 위해서 ..
Docker 개념 및 커맨드 가상화(Virtualization) vs. 컨테이너(Containerization)가상화: 하나의 물리 시스템(호스트)에서 하드웨어 자원을 소프트웨어적으로 나누어 여러 개의 독립된 컴퓨팅 환경(가상 머신, VM)을 생성하는 기술. 하이퍼바이저라는 소프트웨어가 지원. 각 가상머신은 독립적인 컴퓨팅 환경으로 독립적인 OS를 갖고 어플리케이션 실행가능.독립된 환경 : 자원, OS, 커널, 파일 시스템 등 모든 것이 완전하게 분리됨.컨테이너 : 애플리케이션과 그 실행에 필요한 필요한 모든 실행 환경(코드, 라이브러리, 시스템 도구 등)을 패키징하여 실행하는 경량화된 가상화 기술. 주로 리눅스 컨테이너 기술(Linux Containers, LXC) 기반. 각 컨테이너는 독립적인 OS가 아니라 OS 커널을 공유하면..
리눅스 개념 리눅스소스 비공개 문화에 반발하여 시작한 GNU 프로젝트의 차원에서 공개된 오픈소스(GPL) 운영체제. 누구나 GPL 소스에 접근하고 활용할 수 있으며, 많은 개발자가 참여하기때문에 수정이 빈번하고 호환성문제가 발생할 수 있음. (스스로 해결법 탐색할 수 있는 역량이 필요) 리눅스 기본패키지 구성매번 ls와 pwd를 통해서 리눅스 파일 구조를 찾아내기보다는 기본적인 구조는 외워서 작업하는게 더 편리할 것으로 생각되어 기본 패키지는 외울 필요가 있다고 생각한다. Essential Directories to RememberPathPurposeCommon Usage/Root directory (everything starts here)cd / to go to the top level/home/username..