Root292 [Chat GPT] GPT가 만든 PHP, Nginx, Mysql, Mongo, Redis 웹 환경 도커 셋팅 가히 혁명적이다. GPT가 출시된 날을 기점으로 나는 구글링을 멈췄다. 내가 원하고자 하는 답변이 게시되어있는 블로그 찾아 삼만리를 하지 않아도 되는 점이 가장 컸기에 GPT의 의존성을 높였다. 물론 올바른 대답이 아님에도 불구하고 확답처럼 답변을 해서 어리둥둥 했던 적 도 있었지만, 귀찮은 개발 환경 셋팅을 자동으로 시키기에는 훌륭한 존재였다. 물론 완벽하진 않다. 2021년 까지의 데이터를 기반으로 만들어져 있기 때문에 하루가 멀다 하고 update 되는 IT 기술의 최신화된 답변은 어렵지만, 큰 그림에서 도안을 짜고, 셋팅을 하는 것에는 문제가 전혀 없다고 느꼈다. 나 : php 8.1, nginx 1.14, mysql 5.7, redis latest, Mongo latest 로 구성된 docker.. Infrastructure/Docker 2023. 2. 20. AWS CodeDeploy 배포 에러 해결하기 AWS Codedeploy로 배포를 진행하던 도중 전에는 잘만 진행되었던 배포가 에러가 나는 현상이 발생했다. 기존에 애플리케이션 및 배포 그룹 설정까지 잘 설정해줬기 때문에 이런 일이 전혀 없을 줄 알았는데 갑자기 배포 작업이 "실패당해서" 당황했다. 하지만 나도 년차가 쌓여서 그런지, 당황은 뒤로 미뤄두고 좀 더 상세한 에러 로그를 확인하기 위해 세부 정보를 확인해 봤다. 아래와 같은 에러 메시지를 첫 번째로 확인할 수 있었는데 배포 그룹 설정이나 ec2 인스턴스에 특별한 문제는 없어 보였다. The overall deployment failed because too many individual instances failed deployment, too few healthy instances are .. Infrastructure/AWS 2023. 1. 3. Java로 Builder Program 만들기 (완결) - Apache Commons-compress로 빌드 된 프로젝트 폴더 tar.gz 파일로 압축하기 이전 포스팅에서 원하는 도커 이미지를 사용하여 Build 된 프로젝트 폴더를 AWS S3 Bucket에 올리기 쉽게 tar.gz(tgz) 파일로 압축하는 작업을 실행할 차례. apache에서 제공하는 commons-compress 라이브러리를 주입받아 사용한다. Dependency injection 본인은 gadle build tool을 사용하고, commons-compress 1.3버전을 주입받아 사용하였다. dependencies { implementation group: 'org.apache.commons', name: 'commons-compress', version: '1.3' } Make CompressLib Class compress 기능은 추후 다른 곳에서도 사용할 수 있기 때문에 comp.. Server Language/Java 2023. 1. 2. Java로 Builder Program 만들기 (2) - Java로 Shell Script를 Controller하여 Docker로 Source Build하기 Java Docker Library를 찾던 중 대표적으로 많이 쓰이는 2가지를 찾게 되었지만 둘 다 사용하고 싶지 않았다. 첫 번째로 찾은 Library는 docker-java. 최소 2가지의 dependency를 주입받아야 했고 그 이외에 gradle repository를 추가하거나 데몬을 사용해야 하는 등 내가 필요한 기능 이외에 것들을 많이 설정해야 해서 resource 차지가 심하다고 생각이 들었다. 두 번째로 찾은 Library는 gradle-docker-plugin. bmuschko라는 닉네임을 사용하는 특정 개발자가 만든 library로써 사용설명에 이후의 업데이트는 없다고 명시해 놨기 때문에 사용성 측면에 있어서 어려움이 있었다. 그래서 사용자가 원하는 Docker Image를 사용하여 원.. Server Language/Java 2022. 12. 28. Apple FreeForm 리뷰 - 개발자가 Apple Freeform 사용하는 방법 Apple에서 무료로 사용할 수 있는, PPT와 Figma 두 개를 합쳐 놓은 듯 한 무료 서비스를 제공하게 되었다. 아이폰과 아이패드는 IOS 16.2 version 이상부터, Mac OS는 13.1 version 이상부터 사용할 수 있기 때문에 업데이트만 진행하면 default app처럼 자동으로 설치가 완료된다. 본 포스팅에서는 개발자로 일 하고 있는 본인이 Freeform을 사용하여 개발 작업을 할 때 느꼈던 조그마한 꿀팁들을 포스팅하려 한다. Freefrom을 이용한 구조도 작업 머릿속에 있는 걸 정리하지 않고 그대로 개발로 구현하는 것은 상당히 어렵다. 정리하지 않은 채로 개발을 진행하는 경우 코드가 지저분해지거나 의도치 않게 레거시가 되어서 다치 수정작업을 진행하는 등의 불필요한 작업에 시간.. 생활 로그/제품 리뷰 2022. 12. 27. Java로 Builder Program 만들기 (1) - Java JGit Library 사용해서 Git Controller하기 최근 CI/CD를 구현하면서 Builder라는 것에 대해 많이 생각하게 되었다. 단순히 빌드( 개념 정리는 여기 클릭 )를 진행해 주는 프로그램이라 생각했었고, 단순히 사용만 하던 이 Builder라는 녀석을 직접 Java로 구성해보려 하니 막막했다. 특정된 FrameWork이나 특정된 언어(Java, PHP 등)로 구성된 Project만 빌드 해주는 builder가 아니라 사용자의 입맛대로 (원하는 언어 혹은 FrameWork, Git Repository 등을 사전에 설정하면 원하는 방식으로) Build 해주는 프로그램을 만들어 보려고 한다. Java Builder 이미지 메이킹 builder가 하는 역할이나 흐름도에 대해 머릿속에서 대략적으로 생각했던 것들을 손으로 정리해 보았다. 원하고자 하는 기능.. Server Language/Java 2022. 12. 27. [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 3편(끝) [이전글] [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 2편 [이전글] [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 회사에서 프로젝트를 진행할 때, 각자의 소스 버전 관리 시스템(GitLab, GitHub 등)의 repository에 push만 진행하면 알아서 자동으로 서버 min-nine.tistory.com 브랜치 전략 기본 브랜치 세 개로 관리하고, 개발 브랜치는 master 브랜치에서 생성한 개발 브랜치에서 만 개발합니다. 브랜치명 용도 비고 master 기본브랜치 개발브랜치 생성하는 곳 staging 개발서버 배포브랜치 production 배포 브랜치 {협업툴 티켓 넘버}-{프로젝트명} 개발브랜치 REDMINE/J.. Infrastructure/CICD 2022. 12. 23. [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 2편 [이전글] [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 회사에서 프로젝트를 진행할 때, 각자의 소스 버전 관리 시스템(GitLab, GitHub 등)의 repository에 push만 진행하면 알아서 자동으로 서버에 작성한 코드가 반영되는 것을 볼 수 있다. 요즘은 어느 회사 min-nine.tistory.com 이제 GitLab runner가 설치된 서버(ec2, 이하 러너 서버로 명칭)에서 관련 파일을 어떻게 관리하고 배포할 것인가에 대해 여러 가지 방면으로 많은 생각을 하며 머릿속에 있는 flow를 직접 그려가며 정리해봤다. 첫 번째 방안은 도커 이미지를 만들어 Docker Hub로 컨트롤 하는 CI/CD. 1. 러너 서버에서 비즈니스 소스를 포함한 배포 서.. Infrastructure/CICD 2022. 12. 16. MacBook, LG Gram 둘 다 쓰는 개발자가 말하는 각각의 장단점 정리 결론부터 말씀드리면 개발하는데 뭘 쓰던 아무 지장 없습니다. 저는 회사에서 지급받은 LG Gram (15-11세대) 14인치 및 개인적으로 구매한 MacBook Pro (m1-pro) 14인치 2개를 번갈아가며 사용하는데 주로 망이 구분되어 있는 상태에서 외부 통신이 단절될 때, 폐쇄망과 외부망을 연결해주는 소프트웨어들의 경우 윈도우 기반 솔루션이 많기 때문에 윈도우 기반의 Gram을 주로 사용하고, 커맨드 라인에 좀 더 익숙해지고 싶거나 git status를 직관적으로 확인하며 개발을 하고 싶을 땐 oh my zsh가 더 빠르고 안전하게 작동하는 mac을 사용하게 됩니다. 아래는 대부분 많이 사용하고 있는 IDE 및 기타 개발에 필요한 소프트웨어를 어떤 걸 쓰는지, 또한 MacBook과 LG Gram .. 생활 로그/제품 리뷰 2022. 12. 13. [CI/CD 구축] AWS, Docker, GitLab을 사용하여 CI/CD 구축하기 1편 회사에서 프로젝트를 진행할 때, 각자의 소스 버전 관리 시스템(GitLab, GitHub 등)의 repository에 push만 진행하면 알아서 자동으로 서버에 작성한 코드가 반영되는 것을 볼 수 있다. 요즘은 어느 회사에 가던 이러한 CI/CD [여러 가지 사전적인 의미가 많지만 본 포스팅에서는 개발자를 위한 자동화 프로세스를 뜻하는 지속적인 통합(Continuous Integration)과 지속적인 서비스 배포(Continuous Deployment)의 의미를 부여]를 경험하게 될 것이다. 나 또한 회사를 다니면서 누군가가 구축해놓은 CI/CD 파이프라인을 이용만 하였기 때문에 실질적으로 이를 간략하게나마 만들어보며 대략적인 플로우를 머릿속에 다시 한번 확립하고자 본 포스팅을 작성한다. 사전 준비 사.. Infrastructure/CICD 2022. 12. 10. Laravel에서 AWS CloudFront Invalidation 생성 및 조회하기 AWS SDK For PHP를 사용하여 CloudFrontClient 라이브러리로 Invalidation을 생성하려 했었는데 아래와 같은 문제가 생겼다. 1. 각 인스턴스 별 ACCESS KEY 및 ACCESS SECRET KEY를 발행하여. env에서 관리해야 한다 2. 발급받은 각각의 키를 분실하거나 공유하게 될 경우 발생하는 어마무시한 후처리 작업..(키 재발행 및 적용 등) 물론, AWS에서 자체적으로 제공하는 PHP를 위한 SDK가 있는데 굳이 CLI command reference를 사용하려는 이유는 1. AWS로 구성되어 있는 서비스지만 S3,CloudFront 작업 이외에 SDK를 사용하여 develop 해나갈 기능이 없다고 판단. 2. iam의 EC2인스턴스 서버별 작업 권한(S3접근, .. Framework/Laravel 2022. 12. 6. Windows WSL2 Ubuntu에서 Valet 설치하기 Mac Os로 개발을 진행하는 와중에 회사의 VPN이 폐쇄망, 내부망, 외부망으로 나누어지며 폐쇄망에서 내부망으로 접근하게 해주는 외부 소프트웨어(windows only)를 필시 사용하게 됨에 따라 맥환경을 포기하고, 윈도우환경에서 개발을 진행하게 되었습니다. 때문에 비슷한 환경을 설정해주기 위하여 WSL2를 설치하는걸 기본 전제 조건으로하며 본 포스팅을 시작합니다. 1. apt upgrade & php install # apt 최신화 및 php, mysql 서버 설치 sudo apt update & upgrade sudo apt install php-fpm php-curl php-mbstring php-mysql php-xml php-cli unzip network-manager libnss3-tool.. ETC/개발 IDE 설정 2022. 12. 5. 이전 1 ··· 5 6 7 8 9 10 11 ··· 25 다음