no image
Spring)Transaction - AOP
[ AOP의 정의 ] OOP - 객체지향 프로그래밍AOP - 관점지향 프로그래밍 : OOP가 가지고 있는 문제들을 보완하는 기능을 가진다. OOP를 돕는 서포팅 기능 Transaction은 all or nothing (실패되면 전부가 실패되고, 성공하면 전부 성공한다.)insert가 TV 100대가 되면 update도 재고 수량 + 입고 수량이 되어야 한다. 하지만, update가 실패하면, insert 입고 수량 100대는 분명 들어왔는데, update 수량은 최신 갱신이 되지 않는다.     aop가 Exception을 감시하고 있다가 pointcut이 했던 작업을 모두 rollback 시킨다.올바르이 정보가 들어오려면 전부 Exception이 되면 안되기 때문이다.txManager가 Transact..
2024.08.06
no image
Spring)AOP
https://github.com/chaSunil/FirstProject/tree/practice 보안처리, 수행시간을 구하는 작업에 탁월하다. Spring 기술중에서 아주 핵심적인 기술 객체지향 프로그래밍 (Object Oriented Programming) OOP를 보완하는 개념으로 어플리케이션을 객체지향적으로 모듈화 하여 작성하더라도 다수의 객체들에 분산되어 중복적으로 존재하는 공통 관심사가 여전히 존재한다.AOP는 이를 횡단관심으로 분리하여 핵심관심과 엮어서 처리할 수 있는 방법을 제공한다. 로깅작업(개발자의 편의를 위해서 해당하는 날짜에 무슨 작업을 했는지 기입)에 AOP작업은 핵심적으로 쓰인다.  - 아래의 객체지향 개발안에 들어가 있는 여러가지 컬러들은 공통관심사이다. 공통관심사란, 각각의 ..
2024.08.06
no image
Spring)Rest API로 CRUD 정보 처리하기
REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미 GET = 파라미터를 전달할때 쿼리를 통해서 전달POST = 파라미터를 전달할때 요청 body에 숨겨서 전달 이 두개의 Method를 CRUD의 동작으로 사용한다. Create : 데이터 생성(POST) Read : 데이터 조회(GET) Update : 데이터 수정(PUT, PATCH) Delete : 데이터 삭제(DELETE) 서로 대화할 수 있는 요청방식을 정해놓자 = REST API   - 포스트맨에서도 요청 Method가 나와있다.   컨트롤러 생성하기package controller;import java.util.List;import org.sprin..
2024.08.05
no image
Spring) ckEditor 사용법 / JSON으로 쉽게 변환시켜서 사용하기
ckEditor를 사용하면, 게시판 글쓰기 처럼 쉽게 사용할 수 있는 글쓰기 틀을 사용할 수 있다.        Controller package controller;import java.io.File;import java.io.IOException;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import org.json.JSONObject;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.an..
2024.08.05
no image
★(@Scheduled) 실시간으로 거래 시간이 마감되었는지 check 해주는 로직 (실시간 데이터 갱신)
Service 객체를 넣어주어서 시간마다 실행될 Method를 넣어준다. 이렇게 되면 20000 → 20초마다 계속 이 Method들을 불러와서 거래가 완료되었는지 점검해주고 체크를 해준다. @Servicepublic class AuctionService { @Autowired private ItemsDao items_dao; // 경매 관련 데이터 접근 객체 @Scheduled(fixedRate = 20000) // 5초마다 이 스케츌 Method를 실행시킨다 public void checkAuctionStatus() { // 경매 종료를 확인하는 로직 // auction_list_view를 가져와서 a_sledding (진행 여부)를 확인할 수 있다. List items = items_dao...
2024.08.02
no image
게시판4(게시글 번호 정리/ 댓글 Paging 기능 / 댓글 삭제 기능)
게시판 paging 처리 기능 생성하기 select * from ( select rank() over(order by b_ref desc, b_step asc) as no, b.*, (select nvl(count(*),0) from comment_tb where b_idx = b.b_idx) as cmt_count from (select * from board) b ) where no between 1 and 5     board.xml에 추가 select * from ( select rank() over(order by b_ref desc, b_step asc) as no, b.*, (select nvl(count(*),0) from comment_tb wher..
2024.07.25
no image
Dao에서 SqlSession 받아오기 (Setter 수동, Constructor 수동, Auto 완전자동)
Dao에서 SqlSession 받아오기 (Setter 수동, Constructor 수동, Auto 완전자동)
2024.07.24
no image
게시판3 댓글 작성 로직 만들기
comment_tb를 새로 데이터베이스에서 생성을 해준다.  sql 생성하기-- 일련번호create sequence seq_comment_tb_idxcreate table comment_tb( cmt_idx int, -- 일련번호 cmt_content varchar2(2000), -- 내용 cmt_ip varchar2(200), -- ip cmt_regdate date, -- 등록일자 b_idx int, -- 게시물번호 mem_idx int, -- 회원번호 mem_name varchar2(200) -- 회원명)-- 기본키alter table comment_tb add constraint pk_comment_tb_idx primary key(cmt_idx);-- 외래키al..
2024.07.24
no image
게시판 2편(대댓글 생성 로직 / 게시물 삭제 update 로직 / 수정로직 )
답글쓰기 onclick 경로 설정    Controller 추가하기 // 답글쓰기 폼 띄우기 @RequestMapping("reply_form.do") public String reply_form() { return "board/board_reply_form"; } @RequestMapping("reply.do") public String reply() { return "board/board_reply_form"; }    BoardVo vo로 parameter 값을 받으면, 한 번에..
2024.07.24