ArrayList.foreach(System.out::println); for문을 생략하고 출력할 수 있음
트랜잭션 제어와 세션
트랜잭션 : 더 이상 분할할 수 없는 최소 수행 단위
Service가 트랙잭션임
// ParentDTO를 추가할 때
notExistChild()
notExistChild2()
addParentDTO()
// 이렇게 단위 별로 서비스가 작동함
insert시 order_id(PK)처리하는 과정에서 static index = 4, index++
이렇게 하였지만 코드를 재실행 하는 과정에서 index++는 의미가 없어지고 index가 4로 시작해버리는 상황이 발생함
해결 방법 : sequence 를 만들어서 PK값으로 사용함
update를 하는 도중 테이블간의 관계 설정에서 하나의 테이블에 연결관계가 아예 컬럼이 있지만 그 컬럼은 다른 테이블의 컬럼의 값을 사용해야하는 상황이 발생함
(이 때 RDB 설계에서 실수가 있다는 걸 발견함)
해결 방법 : state이라는 컬럼을 사용하여
데이터 모델링부터 어떻 기능을 사용할지 명확하게 정하고 RDB를 설계해야할 것 같음
테이블을 나눠서 해당 테이블만 작업해서 팀작업의 의미가 부족했던 것 같음
다음에는 기능적으로 나눠서도 작업하면 좋을 것으로 예상됨
중간에서 연결해주는 테이블의 설계를 더 핵심적으로 하면 좋을 것 같음
클라우드에 나온 것을 보고 클론 코딩을 하는 것도 좋을 것으로 보임
기능 구현을 하고나서 끝나는게 아니라 기능을 사용하면서 발생한 예외처리가 매우 많았다.
공유 자원 (static)으로 순차적인 작업을 하다보니 DB에서의 순차적 진행 상황은 고려하지 못했다.
테이블이 많아질수록 혼자 작업이 어렵다는 걸 느껴본 것 같다.
내가 좋아하는 주제의 개인 프로젝트로 조금씩 만들어 나가면 재밌을 것 같다.