나의 삽질일기

나의 삽질일기/JPA

[jpa] @Transactional 이 뭔데?

1. "트랜잭션" 이란? 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. 데이터의 정합성을 보장하기 위해 고안된 방법이다. 트랜잭션을 사용함으로 오류로부터 복구를 허용하고, 데이터베이스를 일관성 있게 유지하는 안정적인 작업 단위를 제공하며, 동시 접근하는 여러 프로그램 간 격리를 제공한다. 1-1. 트랜잭션 ACID 이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영구성(Durability)을 보장한다. 이 성질을 첫 글자를 따 ACID라 부른다. 원자성 (Atomici..

나의 삽질일기/Spring

[spring] 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 #1

이 글은 김영한 님의 인프런 강의 실전! 스프링 부트와 JPA 활용 1 - 웹 애플리케이션 개발을 듣고 정리한 글입니다. https://www.inflearn.com/course/스프링부트-JPA-활용-1#curriculum 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강 www.inflearn.com 1. 요구사항 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다..

나의 삽질일기/Spring

[spring] h2 설정하기

1. h2 데이터베이스 설치 설치는 아래 링크를 통해 os에 맞는 데이터베이스를 설치하면 된다. https://www.h2database.com H2 Database Engine (redirect) H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo www.h2database.com 2. 데이터베이스 파..

나의 삽질일기/Spring

[Spring] 스프링 입문 정리

이 글은 김영한님의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술'을 보고 정리한 글입니다. https://www.inflearn.com/course/스프링-입문-스프링부트/dashboard [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 1. 애플리케이션 계층 구조 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도..

나의 삽질일기/Spring

[Spring] IoC (제어의 역전)

IoC (제어의 역전) : Inversion Of Control IOC : “제어의 역전” 이라는 의미로 매소드나 객체의 호출 작업을 개발자가 결정하는것이 아니라, spirng 이 결정하는것을 말한다. 기존 객채의 생성과 실행 과정 객체 생성 의존성 객체 생성 : 클래스 내부에서 생성 의존성 객체 매소드 호출 IoC를 사용하는 spring 에서는 객체 생성 의존성 객체 생성 : 스프링이 만들어놓은 객체(Bean) 를 스프링이 주입. 의존성 객체 메소드 호출 모든 의존성 객체를 스프링이 실행될때 모두 만들고, 필요한곳에 주입시켜 준다. 이로 인해 모든 Bean들은 싱글톤 패턴 의 특징을 가지고, 모듈간의 결합도가 낮아지고 유연성이 높아진다. 참고자료 https://velog.io/@gillog/Spring..

나의 삽질일기/Spring

[Spring] DI (의존성 주입)

DI(의존성 주입) : Dependency Injection DI 란 스프링이 제공하는 의존 관계 주입 기능. 객채를 직접 생성하지 않고, 외부에서 생성 후 주입한다. 이를 통해 모듈간의 결합도가 낮아지고 유연성이 높아지게 된다. 방법 1은 A객체가 B,C 객체를 new 생성자를 통해 직접 생성하는 방법이고. 방법 2는 DI 의 예시로 외부에서 생성된 객체를 setter를 통해 주입하는 방법이다. 스프링에서는 이 객체들을 Bean 이라고 칭하고, 프로젝트가 실행될떄 사용자가 Bean으로 관리하는 객체들의 생성과 소멸에 관련된 작업들을 자동적으로 수행해준다. 이때 객체가 생성회는 곳을 스프링에서는 Bean 컨테이너 라고 부른다 DI를 사용해야하는 이유는 다음과 같다. Test가 용이해진다. 코드의 재사용성..

나의 삽질일기/Algorithm

[BOJ] 9251 LCS - python(파이썬)

https://www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net LCS 최장 공통 부분 수열을 찾는 문제이다. 2차원 배열을 사용해 두 문자열의 글자를 하나씩 늘려 하나하나 비교하는 방법을 사용한다 문제의 예시인 ACAYKP, CAPCAK 를 사용해 비교하면 A, C 의 LCS는 0 A, CA 의 LCS는 1 A, CAP 의 LCS는 1.. 이런식으로 첫번째, 두번째 문자열의 크기를 하나씩 늘려가며 비교한다. A C..

나의 삽질일기/Algorithm

[BOJ] 2096 내려가기 - pyton(파이썬)

https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net 전형적인 다이나믹 프로그래밍을 이용한 문제이다 dp_max = [[0,0,0] for _ in range(n-1)] dp_max.insert(0, data[0]) dp_min = [[0,0,0] for _ in range(n)] dp_min.insert(0, data[0]) for i in range(1, n): dp_max[i][0] = data[i][0] + max(dp_max[i-1][0], dp_max[..

wwan13
'나의 삽질일기' 카테고리의 글 목록 (4 Page)