728x90

전체 글 41

데이터 엔지니어링 생명주기

데이터 엔지니어링 생명주기란? 원시데이터의 요소를 분석가 등이 사용할 수 있는 유용한 최종제품으로 전환하는 단계 데이터 엔지니어링 생명주기 데이터엔지니어링 생명주기는 크게 다섯단계로 나뉜다. 데이터 생성 데이터 저장 데이터 수집 데이터 변환 데이터 서빙 그리고 보안, 데이터관리, 데이터옵스, 아키텍처, 오케스트레이션, 소프트웨어 엔지니어링의 보이지않는 요소로 구성된다 데이터 생성 원천시스템은 데이터 엔지니어링 수명주기에서 사용되는 데이터 원본이다. 원천시스템은 전통적인 RDB형태, IOT스웜으로 구성된 Queue 형태 등 다양한 형태로 존재가능하다. 데이터엔지니어는 원천시스템의 본질과 생성, 수집시점, 스키마등에 대한 다양한 고려사항을 인지해야한다. 원천데이터는 스키마에 따라 크게 두가지로 구분되기도 하..

카테고리 없음 2024.03.08

[Spring JPA] Casacade(영속성 전이), 고아제거속성

영속성 전이는 연관관계에 있는 entity에 대하여, 영속성을 전파시키는 것이다. 예시를 보며 이해보자 A entity와 B entity가 OnetoOne 연관관계가 있다고 할때, A a = new A(); B b = new b(); a.setB(b) aRepository.save(a); 이런 코드가 있다면 오류가 발생할것이다. 왜냐면 a, b가 모두 비영속상태인 상태에서 onetoone 관계를 맺고 저장을 시켜버리기 때문. 실제 DB나 영속성 컨텍스트엔 a,b가 존재하지 않는상태이므로 연관관계를 맺어 저장시키면 transient한 object를 저장해버린다며 오류메시지를 던진다 이때 아래처럼 A entity내의 B에 CascadeType= PERSIST 를 지정해버리면, A의 persist(저장, in..

Programming/Spring 2022.06.22

[Spring JPA] Transactional Manager

Transaction의 특성 ACID 1. Atomicity (원자성) : 부분적 성공 허용 X. all or nothing. 내가돈보내는건 됐는데 상대방계좌에 돈이안찍히는건 안되는 이런경우는 X! -> 하나의 트랜잭션으로 묶인곳에서 RuntimeException발생하면 전체 다 커밋되지 않음. -> 하나의 트랜잭션안에서 저장이 여러번 일어나게되면 컨텍스트 내에서만 저장을 수행하고 최종 커밋은 트랜잭션이 종료될때 수행됨 2. Consistency(일관성) : 데이터간의 정합성을 일관성있게 맞춰야함 3. Isolation (독립성) : transaction의 조작은 다른 transaction에 대해 독립적 4. Durability (지속성) : 데이터는 영구적으로 지속되야함. Transaction 사용의 ..

Programming/Spring 2022.05.12

[Spring JPA] Entity lifecycle

4가지의 Entity lifecycle 1. 비영속상태 (new, transient) transient 상태는 entity가 아닌 java object처럼 취급된다. 즉 영속성 컨텍스트에 의해 db와 연결되지 않은 객체들이 이해해당. 2. 영속상태(managed) 해당 entity가 영속성 컨텍스트 내에서 관리되는 경우. 3. 준영속상태(detached) 영속상태에 있던 entity를 비영속상태인 영역으로 꺼내버리는 경우. em의 detach, clear같은 메서드 호출하여 준영속상태로 만들 수 있음. detached된 준영속상태의 entity는 merge를 통해 다시 영속화 시킬수 있음 4. 삭제상태(removed) 말그대로 삭제해버림.(delete쿼리) 영속성에서 삭제되므로 merge해도 다시 영속화..

Programming/Spring 2022.04.25

[Spring JPA] 영속성 컨텍스트

* 혼자서 공부하다 끄적이는 내용이며 정확성 매우 떨어집니다. 틀린것에 대한 지적은 너무나 감사합니다 영속성 컨텍스트 컨텍스트 : 프레임워크에서 컨테이너들이 관리하고 있는 내용. Spring에선 Spring bean들을 loading 및 관리를 스프링 컨텍스트에서 함 영속성(Persistence) : 사라지지 않고 지속적으로 존재하는것. 메모리에 존재하는 데이터는 보통 서비스가 종료되면 사라진다. 보통 영구적 보관을 위해 수행된 서비스는 대부분 파일이나 DB에 저장된다 -> 영속성 컨텍스트 : 데이터를 영속화하는 컨테이너가 영속성 컨텍스트를 사용하여 데이터를 영속화한다. Java에선 일반적으로 META-INF아래 persistence.xml에 영속성 컨텍스트를 설정하여 사용함. 물론 spring boot..

Programming/Spring 2022.04.24

SpringData JPA 기초

JPA에서 DB와 연결되는 JAVA 객체를 Entity 선언으로 구현가능.(ID 설정을 해줘야함-PK역할) 해당 객체는 JpaRepository implementaion한 repository 인터페이스 생성으로 활용이 가능하다. (JpaRepository의 제네릭은 연결되는 JAVA객체, ID타입으로 구성한다) JpaRepository는 일반적 CRUD 기능을 위한 PagingAandSortingRepository, Example활용 CRUD 기능을 위한 QueryByExampleExecutor를 상속받는다. Repository -> CrudRepository -> PagingAndSortingRepository -> JpaRepository QueryByExampleExecutor -> JpaRepos..

Programming/Spring 2022.02.23

[현대자동차] 국내사업본부 인턴 후기

조회수좀 빨아볼라고 이런거 많이 쓸라했는데 그놈의 귀찮음으로 인해 미루다가 드디어 쓴다. 뭐 나의 목적은 그냥 단순 조회수 뽑기일 순 있지만 준비를 하는 사람에겐 이런거라도 도움이 될 수 있으니.. 블로그 주인장의 취준후기 2탄은 현대차 국내사업본부의 인턴 후기이다. 1. 서류전형 정확히 내가 지원한 직무는 'DATA기반 국내 판매/AS 기획 및 운영'이었다. 그래도 예전부터 데이터분석이랍시고 이것저것 해왔던 활동들이 있어서, 수업, 친구들과 스터디하며 진행했던 데이터분석 경험을 토대로 자소서 작성했다. 2. PT면접 현대자동차의 거의 모든 직무가 그런걸로 알고있는데, PT면접을 본다. 예~~ 전 코로나 없던 시기엔 면접장에서 문제 주고 시간내에 답변 및 발표하는 방식이었다고 그러던데, 요즘은 코로나때문..

취준자료 2021.08.22

[Spring boot] Spring Boot란

Spring boot란 무엇인가! Spring Boot는 프로덕션 제품 수준, 즉 클라이언트에게 서비스를 제공할수 있는 수준의 스프링기반 어플리케이션을 쉽게 만들수 있게 해주는 가이드라인이다. 쉽게 java -jar로 실행하는 자바어플리케이션을 만들수 있다. 따로 Spring구성을 많이 할필요 없이 빠르고 광범위하게 적용할수 있는 환경을 제공해주고 기본값 설정, 공통적인 비기능 제공을 해준다. 말그대로 누구나 쉽게 웹개발 할수있게 스프링에서 미리 틀을 딱 잡아서 제공해주는것! 초간단 예제 초간단 예제 하나만 슥 보자. 우선 Spring initializr를 통해 Spring boot 프로젝트를 생성한다. 이건 뭐 인터넷 치면 정보 수두룩 빽빽. package com.example.demo.controll..

Programming/Spring 2021.06.20

HTTP

HTTP (Hyper Text Transfer Protocol)이 뭐냐? HTTP는 웹에서 데이터를 주고받는 프로토콜(데이터를 교환하기 위한 통신규칙)이다. 이게 말은 하이퍼텍스트 전송용같지만 실제론 HTML, XML, JSON, Js 등 다양한 것을 전송가능하고 메시지를 주고받는 형태의 통신방법이다. (Request -> Response) HTTP Method HTTP 요청을 특정하는 메소드가 8가지 있다. 그중 가장 많이쓰이고 핵심적인 GET, POST, PUT, DELETE를 살펴보자. CRUD 멱등성 안정성 Path Variable Query Parameter Data body GET 리소스 취득 R O O O O X POST 리소스 생성, 추가 C X X O △ O PUT 리소스 갱신, 생성 C..

Programming/Web 2021.06.20

REST API

게을러서 맨날 포스팅해야지 생각만하고 안하던 포스팅 드디어 다시 시작합니다... 사실 포스팅은 나중에 복습할때 올리고 공부중인 강의만 먼저 쭉 들으려했으나, 듣다보니 앞부분이 기억이 1도안나는 사태 발생해서 쓰는것이기두함;ㅎㅋ REST 란 REST(Representational State Transfer)가 뭐냐.. 직역하자면 '자원의 상태전달'을 하는 네트워크 아키텍처 라고함 이에 해당하는 6가지 아키텍처 조건이 있는데 이 6가지를 잘 지켰냐를 기준으로 REST API다! 혹은 RESTFUL하다! 라고 판단한다. 1. Client, Server 클라이언트와 서버가 서로 독립적으로 분리가 되어있는가!! 이건 머 딱히 추가적인 설명이 필요가 없을것같다. 안정적인 사용이나 운영측면에서 당연한 이야기이지 않을..

Programming/Web 2021.06.20
728x90