분류 전체보기
-
CI/CD를 구축하며프로그래밍 지식/Infra 2024. 1. 9. 21:55
다음에 CI/CD를 구축할 때 도움이 되고자 시행 착오를 적는다. 시행 착오 기존 코드가 완전한 코드라고 생각하지 말자. 서버 자체를 백업하고 비교하라 수동 배포가 진행되었던 서버 내 부산물들의 형상 관리가 되지 않았다. 바람직한 SW는 소스 코드 기준으로 빌드/배포 되어야 한다. 하지만 온프레미스 방식의 배포를 하는 경우 기존 서버에 특정 바이너리만 바꿔 끼우는 형식으로 작업이 진행되기에 바이너리를 제외한 다른 구성요소들은 형상 관리가 되지 않았다.(예를 들면 tomcat 등) 업데이트가 자주 되지 않는 스크립트의 경우 GIt으로 부터 복사되지 않고 사용되었다. 심지어는 Git에 형상이 존재하는 스크립트도 서버의 내용과 달랐다. 수동 배포에 쓰였던 빌드/배포용 서버에 서버 종속적인 내용이 존재했다. C..
-
CI/CD 구축 프로젝트프로그래밍 지식/Infra 2023. 12. 14. 01:12
형상 관리를 위한 팀이 별도 존재했지만, 우리 팀을 위한 CI/CD를 별도 구축했다. CI/CD 적용 배경 수동 빌드/배포로 인한 반복적인 수작업 및 Human Error 가능성 존재 빌드 산출물 및 릴리즈 버전 파악의 어려움 정적 검증이 타 팀을 통해 이뤄짐으로써 느린 반영, 검증 대기 문제 CI/CD 목표 빌드에서 배포까지의 과정 자동화 -> Human Error 최소화, 빠른 피드백 루프 Bamboo에서 빌드 history 파악 및 Release 관리, 복구 기능 -> 소프트웨어 품질 확보 CI/CD 파이프라인 내 자체 정적검증(SonarQube), 동적검증(UnitTest) Quality Gate 적용 -> 소프트웨어 품질 확보 CI/CD Tool CI/CD Tool : Bamboo Version..
-
‘객체지향의 사실과 오해‘를 읽고카테고리 없음 2023. 11. 30. 23:57
책을 읽게된 이유 '객체 지향'에 대한 갈증에서 해당 책을 읽게 되었다. 객체 지향 언어인 C++로 개발을 하고 있지만 스스로에게 객체 지향을 잘 사용하고 있는가? 라고 묻는다면 쉽게 '그렇다'라고 답할 수 없었다. 상속이나 추상화 등의 객체지향 성격의 코드는 작성하고 있지만 재사용성까지 고려한다면 어떤 구조로 코드를 작성하는 것이 최선의 선택인지 답을 내리기 어려웠다. 그러한 갈증에서 이 책을 읽게 되었다. 서평 책은 매우 친절하다. 이 책은 저자가 말하고 싶어 하는 바를 친절한 예시를 통해, 여러 번 반복 한다. 그런 점 때문에 저자가 전하고자 하는 메시지가 더 뇌리에 남는다. 스스로가 객체 지향을 잘 사용하고 있는지에 대해 의심이 가는 사람이거나 혹은 객체 지향에 대한 경험이 없는 사람도 이 책을 ..
-
코딩 테스트를 위한 C++카테고리 없음 2023. 10. 2. 20:57
String- 문자열 Parsing// substr(시작 index, 자를 개수)string output = B.substr(numEndIndexB, strEndIndexB - numEndIndexB);- 모두 소문자로 변경// 인자 : 기존 시작점, 기존 끝점, 변경될 시작점, 함수transform(A1.begin(), A1.end(), A1.begin(), ::tolower);- 문자열 -> 숫자 변경int A2I = stoi(A2);- 숫자 -> 문자열 변경string s2 = to_string(num);- 문자열 비교 규칙"9" > "12" // 앞자리를 비교"129" > "12" // 길이가 더 긴 쪽"0" > "-""3" > "-9""-9" > "-3" // 음수를 인식 X. 숫자 크기가 더 ..
-
tableplus 를 이용하여 rds 데이터베이스를 로컬로 이관하자 (import, export)카테고리 없음 2023. 8. 9. 21:15
RDS의 데이터를 로컬로 이관해야할 일이 생겼다. (생각보다 RDS 비용 부담이 크고, 아직 개발 단계이기 때문에 도커를 사용하여 로컬에서 개발하고자 하고자 한다.) - tableplus 사용하여 데이터 이관하기 1. 이관할 테이블들을 스크롤 한 후, File - Export 버튼 클릭 2. SQL 선택 (다른 확장자도 가능할 것 같지만, 나는 SQL로 했다.) 3. 설정한 위치에 저장 완료! 이제 목적지에 해당하는 로컬 Connection을 만든다! 4. TablePlus 첫 화면에서 오른쪽 마우스 클릭 후 - New - Connection 5. 새로운 로컬 커넥션 생성 (필자는 MySQL로 했다.) 본인 컴퓨터에 있는 MySQL ID, PASSWORD가 필요하다! 5-1. 나 처럼 맨날 MySQL r..
-
Spring Boot/React Docker 이미지 만들기프로그래밍 지식/Infra 2023. 7. 16. 21:35
들어가며Mac에서의 Docker 설치 방법 및 리액트/스프링부트 빌드 결과물을 띄울 수 있는 간단한 스크립트를 만들어보았다.Docker 설치Mac Docker 설치https://kanoos-stu.tistory.com/22 Docker Destop 을 클릭하고 자신의 os 버전에 맞게 선택해 설치를 한다. 설치가 완료되면 mac 의경우 " data-og-host="kanoos-stu.tistory.com" data-og-source-url="https://kanoos-stu.tistory.com/22" data-og-url="https://kanoos-stu.tistory.com/22" data-og-image="https://scrap.kakaocdn.net/dn/n8r6R/hyTlbfpqhl/7aVa..