전체 글289 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. [개발자 책 추천] 모던 자바 인 액션 PHP 개발자로 지낸 지 4년, 한 언어에 국한되지 말고 다양한 언어를 체험해 보고 싶은 마음이 커질 때 즈음 현 직장에서 JAVA로 Server Engine을 개발해보지 않겠냐는 제안을 받았고 흔쾌히 수락하였습니다. 제 머릿속에 자리 잡고 있는 JAVA는 객체지향 언어의 표본 주자이지만, 다루기 까다롭고 스레드 폴, 병렬 실행 컬렉션 등 강력한 기능들은 존재하였지만 개발자로서 활용하기 어렵고 이해하기 힘든 부분이 많았기에 매우 까다로운 언어라고 생각이 들었습니다. JAVA 8 버전이 지나면서 개발자들이 사용하기 좋은 기능들을 더욱 강력하게 지원해준다는 소식을 듣고, 회사 근처에 있는 교보문고 광화문점으로 나들이 가서 너무 기본적인 문법만 가리키는 정석 느낌에서 벗어난 [모던 자바 인 액션]을 발견하였습.. 책/IT 2022. 11. 22. [JavaScript] Form태그 하위 Input을 Post전송하는 JsFormController 만들어보기 최근 진행한 프로젝트에서 Javascript로 Form태그 하위의 Input 요소들이 유동적으로 추가 및 삭제되는 기획이 많아서, Javascript로 어떻게 하면 유동적으로 첨삭되는 Input태그들과 Form을 손쉽게 POST 전송하여 데이터를 첨삭할 수 있을까 고민하다 JsFormController라는 Class를 만들어보며 나름 뜻깊었고, 본인과 같은 고민을 하시는 분들께 약소하게나마 도움이 되고자 포스팅합니다. javascript를 사용하여 form 태그 하위 요소들을 핸들링하여 fetch 함수로 비동기 post 전송을 실행해보자. 본 예제는 Insert 부분까지만 다루며 update, destory 등은 스스로 해보면서 학습하길 권장합니다. 1. JsFormController.js 이름의 Cla.. Client Language/JavaScript 2022. 10. 6. [개발자 책 추천] 면접을 위한 CS 전공지식노트 IT 분야는 너무 포괄적이고, 각 분야별로 파고들면 들수록 세분화되고 그렇기 때문에 개발 및 IT분야 종사자는 스스로 학습을 게을리하는 순간 도태되는 것이라고 생각합니다. 하루가 멀다 하고 새로운 기술들과 새로운 하드웨어들이 쏟아져 나오는 이 시대에서 새로운 것들을 계속 공부하는 현업에 종사하는 저는 얼마 전 한 대학생에게 취업 면접 관련하여 운영체제, 네트워크, 자료구조 등 기본적인 것들에 대해 질문을 받았습니다. 그리고 그 질문들에 대해 명확하게 이야기할 수 없었습니다. 때문에 기본 중의 기본을 쉽게 이해할 수 있게 도와주는 책을 찾아보게 되었고 [면접을 위한 CS 전공지식노트]라는 책을 발견하였습니다. 현업에 종사하며 꼭 필요하다고 생각했던 디자인 패턴에 대한 간략한 설명과 각 패턴을 어떤 상황에서.. 책/IT 2022. 8. 1. Spring Boot에서 MongoDB 인덱스 자동증가 (autoincrement) 기능 구현하기 mongoDB는 id를 String 형태의 문자열로 구성하고 있고, 이를 강제로 Long으로 바꾸어 사용할 수 있지만, 그럴 경우 MongoRepository의 findBy 관련 함수들을 많이 튜닝해줘야 하는 단점이 보였기에 별도로 Long 형태의 idx를 collection에 추가하여 사용하려 합니다. RDS에서 제공하는 auto increment기능이 noSQL에는 없기 때문에, 각 collection의 idx 마지막 값을 저장하는 별도의 collection을 구성하여 auto increment 기능을 구현하였습니다. 1. collection들의 마지막 idx를 가지고 있는 DatabaseSequence Class 생성하기 members collection의 Long idx의 마지막 값을 가지는 d.. Framework/Spring Boot 2022. 7. 20. Spring Boot 및 MongoDB를 사용하여 REST API 구축하기 - 회원 가입,탈퇴,조회 Spring Boot와 MongoDB를 공부하기 위해 사이드 프로젝트를 시작하려고 마음먹은 지 오래되었지만 막상 혼자서 공부하려니 너무 막연하고 주제도 못 정하고 있었습니다. 때문에 모든 사이트의 기본인 회원 관련 API부터 구현해보기로 마음먹고 첫발을 내딛습니다. [기술 스택] Gradle 7.4.2 Spring Boot 2.7.1 openJDK 18.0.1.1 mongoDB 4.4 (본문에서 다루는 모든 패키지는 com.kimmingyu.aws 하위에 선언하고 있기 때문에 본인의 프로젝트에 맞게 수정합니다.) 1. Gradle 필요 의존성 주입 아래 2개의 dependencies는 필수로 추가합니다. modelmapper를 사용하여 Object에서 Obejct로 값을 옮길때 번거롭게 getter, s.. Framework/Spring Boot 2022. 7. 19. 이전 1 ··· 4 5 6 7 8 9 10 ··· 21 다음