일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 제로초
- 자바스크립트객체리터럴
- 자바스크립트
- 틱택토구현
- 콜백함수
- 인프런강의
- 인프런자바스크립트
- 자바스크립트파라미터
- 인프런
- 비주얼스튜디오
- 인터넷프로토콜
- sort
- 인프런강좌
- 고차함수
- 자바스크립트recude
- EntityFramework
- 자바스크립트함수
- Blazor
- 이벤트리스너
- 인프런무료강좌
- 객체의비교
- c#
- 코딩
- slice
- HTTP
- 인프런인강
- NPM
- .NET
- 자바스크립트틱택토
- 객체리터럴
- Today
- Total
목록스프링 DB 1편 - 데이터 접근 핵심 원리 (6)
샐님은 개발중
item 을 저장할때 기존로직은 아래 코드처럼 controller에서 item데이터를 생성해주고 있어서 유지보수나 관리차원에서 힘들 수 있다. @PostMapping("/save") public String saveItem(@ModelAttribute("item") Item form, RedirectAttributes redirectAttributes, Model model) throws IOException { List storeImageFiles = fileutils.storeFiles(form.getImageFiles()); //데이터베이스에 저장 Item item = new Item(); // controller 에서 setter를 사용해서 추가하는 것보다는 // entity에 static 생성자..

인프런강의 JPA를 활용해서 연관된 테이블의 값을 저장하는 강의를 보다가 응용하고싶어서 Item에 color 필드를 추가했다. 내가 하고 싶은것 JPA 에서 Item 엔티티에 item_id로 조인된 ListcolorList 에 화면에서 선택한 색상들을 item_id 를 외래키로 해서 데이터를 insert하고 싶었다. 간단할 줄 알았는데 생각대로 구현하려다 보니까 복잡하게 구현한거 같다. 좀더 간편한 방법이 있을 거 같기도하다. 0. Item.java @Entity @Getter @Setter public class Item { . . . . @Transient private List colors; @OneToMany(mappedBy = "item",cascade = CascadeType.ALL) priv..
MemberService.java public void accountTransfer(String fromId, String toId, int money) throws SQLException { // 트랜잭션 시작 TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition()); try{ // 비지니스 로직 bizLogic(fromId, toId, money); transactionManager.commit(status); }catch (Exception e){ transactionManager.rollback(status); throw new IllegalStateException(e); } } ..
문제점들 애플리케이션 구조 @Controller(웹,서블릿, HTTP 관련 처) - @Service(가급적 순수 자바 코드로 작성, 비지니스 로직담당) - @Repositroy DB 접근 계층 - DB 서버 MemberServiceV2.java package hello.jdbc.service; import hello.jdbc.domain.Member; import hello.jdbc.repository.MemberRepositoryV1; import hello.jdbc.repository.MemberRepositoryV2; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import javax.sql.DataSource; impor..

1. 트랜잭션 개념 db에서 트랜잭션은 하나의 거래를 안전하게 처리하도록 보장해주는 것을 뜻한다. 커밋: 모든 작업이 성공해서 db에 정상 반영되는 것 롤백 : 작업 중 하나라도 실패해서 거래 이전 상태로 되돌리는 것 원자성: 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 하거나 모두 실패해야 한 다. 일관성: 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 데이터베이스에서 정 한 무결성 제약 조건을 항상 만족해야 한다. 격리성: 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를 들어 동시에 같은 데 이터를 수정하지 못하도록 해야 한다. 격리성은 동시성과 관련된 성능 이슈로 인해 트랜잭션 격리 수준 (Isolation level)..

커넥션 풀 이해 기존 DB의 커넥션을 매번 획득 사용 과정 1. 앱 로직은 db드라이버를 통해 커넥션조히 2. db 드라이버는 db와 'TCP/IP' 커넥션 연결 3. DB 드라이버는 'TCP/IP' 커넥션이 연결되면ID,PW 기타 부가 정보 DB에 전달 4. DB는 완료 응답 보냄 5. DB 드라이버는 커넥션 객체를 생성해 클라이언트에 반환 -> 과정이 복잡하고 시간 많이 소요 이런 문제를 해결하기 위해 커넥션을 미리 생성해두고 사용하는 커넥션 풀이라는 방법 사용 커넥션 풀 : 커넥션을 관리하는 풀 커넥션 풀 사용 - 이제는 애플리케이션 로직에서 DB 드라이버를 통해서 새로운 커넥션을 얻는 것이 아니라 이미 생성되어 있는 커넥션을 객체 참조로 그냥 가져다 쓰면 된다. - 커넥션 풀에 커넥션을 요청하면 ..