no image
Spring)RMI
EJB - 분산기능 (한 서버에서 요청이 집중이 되면, 과부화가 될 수 있는 문제를 방지하는 차원)서비스가 늦더라도 안정성이 항상 유지되어야 한다. Spring에서도 분산기능을 사용할 수 있다. (REST에서 JSON으로 정보를 주고받고 하는 기술, RMI는 자바 기술인데 Remote Method Invocation 자바의 네트워크 기술 - RMI를 이용해서 웹 어플리케이션에서 분산기능을 사용할 수 있다.) 자바 계열쪽에서의 Spring을 통한 분산가능은 유지비용이 현저히 적은 규모로 들어가서 중요한 요소이다. [ RMI ] 저쪽 컴퓨터에 있는 Method를 내 컴퓨터에 있는 것처럼 Method를 사용하고 활용할 수 있는 방식이다.필히 Dao를 클래스가 아닌 인터페이스 객체로 만들어야 한다.    [ c..
2024.08.07
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
이클립스에서 Project 생성시 Console 화면에 뜨게 하는 오류 수정
Project를 새로 생성하면 Console창에서 Project가 생기는 오류    Window -> Perspective -> Reset Perspective를 눌러주면    화면 구성이 전처럼 초기화 된다.
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
[오류]A query was run and no Result Maps were found for the Mapped Statement 'auction.selectone_item_idx'. It's likely that neither a Result Type nor a Result Map was specified.
심각: 경로 [/auction]의 컨텍스트 내의 서블릿 [appServlet]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement 'auction.selectone_item_idx'.  It's likely that neither a Result Type ..
2024.08.01
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