본문 바로가기

전체 글24

@Transactional @Transactional 스프링에서 제공하는 트랜잭션 처리 중 하나이다. 어노테이션으로 트랜잭션 처리를 지원한다. 선언적 트랜잭션 이라고도 부른다. 클래스나 메소드에 붙여줄 경우, 해당 범위 내 메소드가 트랜잭션이 되도록 보장해준다. 예시 @Transactional(readOnly = true) public List getProducts() { List entityList = productRepository.findAll(); return entityList.stream() .map(entity -> modelMapper.toMapping(entity, ProductResultDto.class)) .collect(Collectors.toList()); } 위 메소드는 product의 목록을 조회하기위해.. 2023. 1. 1.
Spring AOP AOP(Aspect Oriented Programming) Spring의 핵심 개념중 하나이며 관점지향 프로그래밍을 의미한다. 관점지향 프로그래밍이란 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 나누어진 관점들을 기준으로 각각 모듈화 하겠다는 의미다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는것을 의미한다. 예를들어 핵심적인 관점이란 개발자가 적용하고자 하는 핵심 비즈니스 로직이 된다. 또한 부가적인 관점은 핵심 로직을 실행하기 위해서 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등을 예로 들 수 있다. AOP에서 각 관점을 기준으로 모듈화한다는 것은 코드들을 부분적으로 나누어 모듈화하겠다는 의미가 된다. 이때, 소스 코드상에서 수행되는 비즈니스 로직.. 2023. 1. 1.
Vue 게시판 (2) PostsReg.vue (글 등록) 새로운 글 등록 제목 본문 목록으로 저장 PostsDetail.vue(글 상세조회, 수정, 삭제) 게시글 상세 작성자 : {{posts.author}} ({{posts.createdDate}}) 제목 본문 작성글 본문 테스트중입니다 목록으로 수정 삭제 저장 취소 글 상세 글 수정 글 삭제 삭제 후 글이 10건이므로 페이징 처리가 필요없어서 페이지 버튼은 표출되지 않았다. 상세조회, 수정, 삭제 API는 따로 건드릴게 없으므로 코드를 첨부하지는 않았다. 이제 여기서 더 추가할 것은 로그인이다. 로그인을 통해 사용자를 식별하고 작성자 정보는 프론트가 아닌 서버에서 확인하는 것으로 변경하여 등록이나 수정마다 현재는 작성자, 수정자가 코드로 고정이 되어있는데 이 부분을 수정할.. 2023. 1. 1.
Vue 게시판 (1) JPA CRUD(1) JPA에 대해 공부하면서 실제로 어떻게 적용해 사용하는지 알아보기 위해 REST API 방식의 CRUD를 구현해복자 한다. 게시판을 만든다는 가정하게 코드를 작성할 것이다. 따라서 REST API + SPA 로 분리하 hyo7730.tistory.com 이전에 JPA 로 구현했던 API에 요청할 수 있는 클라이언트 화면을 Vue를 통해 구현해봤다. 들어가기전에 Vue 2버전과 3버전은 차이가 있으니 이 점 참고해야한다. 그 외 생성과 동시에 npm을 통해 추가로 설치한 도구들이 있다. vue router 3.x.x (router) axios 0.2x.x (ajax) v-pagination-3 (테이블 페이징 컴포넌트) App.vue 가장 최상단 컴포넌트이다. 내가 작성한 코드들은 랜.. 2023. 1. 1.