빅데이터 도메인 프로젝트로 추천 시스템을 구축해야했는데 Scala + Spark + MongoDB로 추천 시스템을 구축하는 중 버전 호환 문제가 발생했다.JDK 17을 사용할 경우, SparkSession 생성단계에서 IllegalAccessError가 발생한다.( S
기존에 작성하던 Scala+Spark 애플리케이션을 어떻게 구동하고 데이터를 클라이언트 측에 어떻게 전달할까 고민중이였다.지금은 IntellJ IDEA를 통해 Scala 애플리케이션을 실행하고 있지만 운영 환경에서 불가능한 일이고, sbt CLI를 통한 실행의 경우에도
먼 길을 돌아온 끝에 Java 코드나 Spring으로 Scala+Spark 코드를 실행시키는 대신, Scala로 구동되는 자체 서버에서 Spark 애플리케이션을 실행하고 서버 간 통신을 통해 데이터 처리 결과를 전달하기로 했다. 이를 위해 Scala에서 사용할 수 있는
배포 환경을 감안하여 Scala로 작성된 Play 애플리케이션을 컨테이너 상에서 실행하기로 했다.sbt 1.7.2 + JDK 8 이미지를 사용했고, 작성한 docker compose 파일은 아래와 같다.compose 파일 실행 전에 docker create networ
로컬 환경에서 Play 애플리케이션의 컨테이너 가상화를 성공적으로 끝내고 배포 환경으로 옮기기로 했다. Spring 서버와 마찬가지로 자동화를 위해 CI/CD를 적용하기로 했다. 앞선 Docker 실습에서는 sbt run 명령어를 통해 서버를 실행했는데, 사실 이는 개
배포된 Play 서버에 API 요청을 날려봤는데 400 Bad Request 응답을 받았다. 배포 컨테이너 로그를 확인해보니 다음과 같은 경고 로그를 확인할 수 있었다.로컬 환경에서 만나보지 못한 문제였고, 프로덕션 환경에서 Play 애플리케이션을 실행할 때 발생하는
Play 애플리케이션 CI/CD 작업 중 빌드 작업을 컨테이너 상에서 진행되어 빌드가 정상적으로 종료된 것인지를 체크하는 방법을 고안할 필요가 있었다. 구글링+GPT와 씨름한 결과, Jenkins pipeline 내 Script Block을 이용해 조건문 로직을 추가할
SSAFY에서 제공하는 배포 환경이 EC2 인스턴스 하나인 데다가 GitLab도 레포 하나를 프론트/백이 같이 쓰다보니 CI/CD를 파트별로 분리하는 데에 어려움이 많았다. 프론트↔백의 경우 2개의 develop 브랜치를 사용함으로써 브랜치명으로 파이프라인 트리거를 설