전체 글

전체 글

    [jenkins] 신입의 객기 - 자동화 여정 (End)

    이전 포스팅에 이어서 회사 서비스에 CI/CD 구축하기 전 팀원들과 진행하고 있던 토이 프로젝트에 간단한 배포 스크립트를 적용하였다. 그 과정에서 AWS EC2 프리티어의 메모리 문제나 사소한 권한 문제들로 애를 먹었지만 필요한 크리덴셜을 설정한다던지, ssh Key를 이용해서 서버와 서버 간의 접속 권한 문제를 해결한다던지 등 사소한 이슈들을 잘 헤쳐나갔다. 그리고 이슈를 해결을 하면서 대부분 자동화 배포 과정에서 생기는 문제들은 설계 상의 문제보단 권한의 문제가 크다는 것을 알게 되었다. 그리고 회사 서비스에 적용을 하기 위해선 보안도 엄격하게 고려해야 했다. 하지만 그 전에 토이 프로젝트의 개발 환경과 회사 서비스의 개발 환경이 완전히 다르다는 것이 문제였다. 적용 전에 맞닥뜨린 문제 팀원들과 진행..

    [jenkins] 신입의 객기 - 자동화 여정 (2)

    이전 내용 로컬에서 젠킨스를 테스트해 보기 위해 AWS EC2 인스턴스(리눅스)를 만들었다. 환경 셋팅을 진행하고 마지막으로 젠킨스를 설치하고 구동했지만 되질 않았다.. 그리고 이 내용은 이어지는 나의 삽질이다. 젠킨스 설치 일단 젠킨스 설치 과정에 대해서 기록한다. 생각보다 과정이 복잡하다. 참고로 젠킨스의 디폴트 포트는 8080이기 때문에 해당 포트를 이용하고 있다면 젠킨스 설정 파일에서 사용할 포트로 변경해줘야 한다. EC2 환경에선 인바운드 규칙도 추가해줘야 하겠다. 참고한 래퍼런스 https://velog.io/@yundleyundle/AWS-EC2에-Jenkins-설치하기 https://green-joo.tistory.com/12 위에 래퍼런스대로 진행한다면 아마 최신버전의 젠킨스를 다운로드 ..

    [jenkins] 신입의 객기 - 자동화 여정 (1)

    상황 1. 회사에서 운영 중인 서비스 중 CI/CD 구축이 안되어 있는 서비스가 있다. 2. 현재까지도 각 서버에 수작업으로 배포를 진행... 3. 타팀은 이미 구축했다던데... 4. 우리 팀은 왜..? 5. 뒤쳐지는 꼴 나는 못 봐. 6. 과감히 회의 때 CI/CD 구축을 건의드렸다. 7. 예, 제가 한번 객기를 부려보겠습니다. (문제는 내가 한 번도 해본 적이 없다는 것이죠^0^...) CI/CD란? Continuous Intergration / Continuous Deployment, 지속적인 통합과 지속적인 배포를 의미한다. 사실 CI/CD 필요성에 대해서 그동안 와닿기가 힘들었다(사이드 프로젝트는 운영하는 서버 하나에 보내면 됐으니깐). 근데 실무에서는 운영하는 서비스를 개발, 스테이징, 운영 ..

    [java] HttpURLConnection을 이용한 API 통신 방법

    프론트에서 ajax나 Fetch API를 활용해서 API 통신하는 방식은 익숙하다. 백엔드에서도 URLConnection을 생성해서 API 통신을 할 수 있고 Response의 Payload 데이터에 접근할 수 있다! 예제코드 @PostMapping("/api/test") public ResponseEntity urlConnectResponseTest(@RequestBody JSONObject param) { HashMap res = new HashMap(); List list = new ArrayList(); list.add("1. 테스트 데이터입니다."); list.add("2. 테스트 데이터입니다."); list.add("3. 테스트 데이터입니다."); res.put("code", 200); res..

    [java] Stream API Basic

    Java 8에서의 가장 큰 변화 중 하나는 함수형 프로그래밍 패러다임을 지원한다는 것이다. 나는 현재 회사에서 기존에 있던 오래된 레거시 코드를 조금 더 좋은 코드로 리팩토링 하기 위해서 고민하고 적용해 볼 수 있는 시간을 가질 수 있게 되었다. 그리고 레거시 코드 중 일부를 Stream API를 활용해 리팩토링을 진행했다. 실제로 적용해 보며 느꼈던 점이 있다. - 코드 가독성이 눈에 띄게 좋아졌다. - Stream을 활용하는 게 무조건 성능 면에서 좋은 것은 아니었다. - 어떤 경우에 병렬 Stream을 이용해야 하는지 공부가 더 필요함을 느꼈다. 그리고 Java 8 공식문서에 기재되어 있는 Stream API의 특징을 간략하게 정리해 보았다. - Stream은 함수형 스타일을 지원한다. - 저장소가..