EC2에 mysql을 docker를 이용해서 올려보자 https://hanjungyo.tistory.com/74 [Spring Boot] Docker를 이용해 EC2에 배포해보기EC2 인스턴스 생성 방법은 이전 포스팅을 참고해주세요!로컬에서 Docker 설정 Jar 파일 빌드하기 보통 빌드를 할 때 ./graldew clean build 를 많이 봤을텐데 이번에는 ./gradlew clean bootJar를 통해 Spring Bhanjungyo.tistory.com EC2에 docker가 설치되어있지 않다면 위 링크의 docker 설치하기 부분을 참고 EC2에 ssh로 접속을 하고 MySQL Docker Image 다운로드 sudo docker pull mysql // 제일 최신 버전 다운로드// ..
EC2 인스턴스 생성 방법은 이전 포스팅을 참고해주세요!로컬에서 Docker 설정 Jar 파일 빌드하기 보통 빌드를 할 때 ./graldew clean build 를 많이 봤을텐데 이번에는 ./gradlew clean bootJar를 통해 Spring Boot 애플리케이션을 위한 실행 가능한 JAR파일만 생성했음 ./gradlew build는 bootJar를 포함하여 내부 동작이 더 길다반면, bootJar의 경우 단순히 프로젝트의 jar파일을 만드는 목적으로 빌드 속도가 빠르다(clean 작업은 build/ 와 같은 빌드 산출물 디렉토리를 삭제하여 이전 빌드 결과물을 모두 제거함) Dockerfile 생성하기# Dockerfile# jdk17 Image StartFROM openjdk:17# jar..
알아보기 좋은 예외 처리를 위해 Spring Boot에서 Custom Exception을 설정해보자!! ErrorCode enum 생성 및 설정 springboot 에서 에러를 발생시켰을 때, 전달할 에러 코드를 관리하는 enum을 생성해준다! enum(열거형)은 서로 연관된 상수들의 집합을 정의할 때 사용하는 특별한 자료형임!=> 주로 몇 가지 값 중 하나만 선택해야 하는 경우에 사용됨(계절, 요일, 상태 등) package berich.backend.exception;import lombok.RequiredArgsConstructor;import org.springframework.http.HttpStatus;@Getter@RequiredArgsConstructorpublic enum ErrorCo..
Docker를 알아보기 위해서는 컨테이너와 가상화에 대해 먼저 이야기를 해야한다! 컨테이너 그럼 컨테이너란 무엇일까? 소프트웨어와 SW를 실행하기 위해 필요한 모든 구성 파일을 포함한 소프트웨어 패키지라고 생각하면 됨! 컨테이너가 왜 필요할까? 만약 FastAPI 와 Flask를 이용해 각각 서버를 구축하기 위해 로컬에 직접 python 라이브러리들을 설치했다고 생각해보자 프로젝트 간 라이브러리 의존성 충돌 문제, python 버전 충돌 문제 등등 여러 문제들이 발생할 수 있다 => 이를 위해 프로젝트(서비스)마다 컨테이너를 만들어서 환경을 격리하는게 좋음! Dockerfile은 만들고자 하는 컨테이너의 세부사항을 적어놓은 파일이고Requirements.txt는 컨테이너 내부에 설치할 파이썬 라이브러..
💡대규모 분산 처리의 프레임워크💡 ✔️구조화 데이터와 비구조화 데이터 SQL로 데이터를 집계하는 경우, 먼저 테이블의 칼럼 명과 데이터형, 테이블 간의 관계 등을 스키마로 정함 => 스키마가 명확하게 정의된 데이터를 구조화된 데이터라고 한다! (기존의 데이터 웨어하우스에서는 항상 구조화된 데이터로 축적하는 것이 일반적이었음) 스키마가 없는 데이터를 비구조화 데이터라고 함! (자연 언어로 작성된 텍스트 데이터와 이미지, 동영상 등의 미디어 데이터가 포함됨) => 이 상태로는 SQL로 제대로 집계 X 비구조화 데이터를 분산 스토리지 등에 저장하고 그것을 분산 시스템에서 처리하는 것이 데이터 레이크의 개념임=> 데이터를 가공하는 과정에서 스키마를 정의하고, 구조화된 데이터로 변환함으로써 다른 데이터와 마..
💡크로스 집계의 기본💡 ✔️ 트랜잭션 테이블, 크로스 테이블, 피벗 테이블 행과 열이 교차하는 부분에 숫자 데이터가 들어가기 때문에 이를 크로스 테이블이라고 부름 => 사람이 보기에는 편한 보고서이지만, 데이터베이스에서는 다루기 어려운 데이터 형식임(DB에서 행을 추가하는 것은 간단하지만, 열을 늘리는 것은 간단하지 X) 따라서, 보고서의 바탕이 되는 데이터는 행 방향으로만 증가하게 하는게 좋은데 이것을 트랜잭션 테이블이라고 함 트랜잭션 테이블에서 크로스 테이블로 변환하는 과정을 크로스 집계라고 함소량의 데이터를 크로스 집계하는데 편리한 것이 스프레드시트의 피벗 테이블 기능임 피벗 테이블에서는 행과 열이 교차하는 부분의 값은 자동으로 집계됨 결과를 크로스 테이블에 정리할 뿐만 아니라 그래프로 ..
💡빅데이터의 정착💡 ✔️분산 시스템에 의한 데이터 처리의 고속화 클라우드 서비스의 보급으로 기술적인 제약이 적어져 누구라도 마음만 먹으면 데이터를 분석할 수 있는 시대가 되었다 => 이제 대량의 데이터를 활용하여 새로운 가치를 창출하거나 의사 결정을 위해 이용하는 일이 보편화됨 "빅데이터"라는 단어를 자주 접하게 된 것은 2011~2012 기업들이 데이터 처리에 분산 시스템을 도입했을 무렵=> 빅데이터라는 단어가 여기저기서 사용되어 데이터를 비즈니스에 활용하자는 움직임이 활발해짐 빅데이터의 취급이 어려운 이유는 크게 2가지이다! 1. 데이터의 분석 방법을 모른다는 점=> 데이터가 있어도 그 가치를 창조하지 못한다면 의미 X 2. 데이터 처리에 수고와 시간이 걸린다는 점 => 지식이 있어도 시간을 ..
spring boot를 이용하여 프로젝트를 하게 되었는데MySQL을 처음 연동해보면서 기록을 남겨보겠습니다... implementation 'org.springframework.boot:spring-boot-starter-data-jpa'runtimeOnly 'com.mysql:mysql-connector-j' 우선 build.gradle에 위 2개의 의존성을 추가해준다 📌implementation 과 runtimeOnly 의 차이는 뭘까 궁금증이 들었다!=> runtimeOnly는 컴파일 시점에는 필요없지만 실행 시점에는 꼭 필요한 라이브러리의 의존성을 추가할 때 사용한다고 한다 DB 연동을 위해서는 resources 디렉토리 안에 있는 application.properties를 설정해줘야 하..
Amazon Redshift 웨어하우스를 대상으로 구성 저번 포스팅들을 통해 원하는 소스 시스템에서 데이터를 추출했는데 이제 Redshift 데이터 웨어하우스에 데이터를 로드하여 데이터 수집을 완료할 차례이다! => 로드 방법은 데이터 추출 산출물이 어떤 모습인지에 따라 다름 데이터 웨어하우스로 Amazon Redshift를 사용하는 경우 데이터를 추출한 후 로드하기 위해 S3와 통합하는 것은 매우 간단한다 우선 S3에서 읽기와 관련된 권한을 Redshift 클러스터에 직접 할당할 IAM 역할을 생성해야 하는데 IAM의 탐색 메뉴에서 역할을 선택하고 [역할 만들기]를 클릭한 후 선택할 AWS 서비스 목록에서 Redshift를 찾아 선택하고 [사용 사례 선택] 에서 'Redshift - Customizab..
MongoDB에서 데이터 추출 이번 예제에서는 집합(collection)에서 MongoDB 문서(document)의 하위 집합을 추출하는 방법을 다루고 있습니다! => 이 예제에서 MongoDB 집합에서 문서는 웹 서버와 같은 일부 시스템에서 기록된 이벤트를 나타냄 (env) pip install pymongo => MongoDB 데이터베이스에 연결하려면 먼저 PyMongo 라이브러리를 설치해야 한다 그 후 MongoDB의 Atlas에서 무료 MongoDB 클러스터를 생성하고, 데이터베이스를 생성한다! (env) pip install dnspython => MongoDB Atlas에서 호스팅하는 클러스터에 연결할 때 pymongo를 사용하려면 dnspython이라는 파이썬 라이브러리를 하나 더 설치해야 ..
이번 포스팅과 다음 포스팅을 통해 공통 시스템에서부터 또는 공통 시스템으로데이터를 내보내고 수집하기 위한 코드 예제를 이용해 공부를 해보겠슴다..!파이썬 환경 설정 앞으로 나올 모든 코드 예제는 파이썬과 SQL로 작성되며 오늘날 데이터 엔지니어링 분야에서 흔히 사용되는 오픈 소스 프레임워크를 사용한다 이번 실습에 사용된 라이브러리를 설치하기 전에 설치할 가상 환경을 만드는 것이 좋다 => 다양한 프로젝트 및 애플리케이션의 파이썬 라이브러리를 관리하는데 유용한 virtualenv 도구를 사용 (이를 통해 파이썬 라이브러리를 전역이 아닌 프로젝트에 맞는 범위 내에서 설치할 수 있음) $ python -m venv env 를 통해 env라는 가상 환경을 생성하고 window의 경우(제가 window 환경에서 ..
오늘은 한국 IT 서비스 학회에서 개최한 2024 통합춘계학술대회에 참관하였습니다! 일 시 : 2024년 5월 30일(목) 09:00 ~ 18:00장 소 : 한국과학기술회관 국제회의장주 제 : 인공지능(AI) 경제 시대, IT 서비스 분야의 전략적 기회와 도전과제 도착하자마자 안내 책자와 함께 명찰을 주셨는데 명찰을 가진 사람은 무료로 음료수를 제공해주셨다!! Track 별로 강연 내용이 다르고 해당 Track도 시간대별로 Section이 나눠져있어서 원하는걸 골라서 들으면 됨! Track E의 강연을 들었는데 내용이 너무 많아서😭 제일 흥미로웠던 주제 2가지를 간단하게 키워드 위주로 정리해보았다 1. 공공행정 업무 분야 - 프롬프트 엔지니어링 메뉴얼 연구배경 및 목적 2022년 11월, C..