IT수업/STS3 34

IT 수업 20주차 (134) 이미지 업로드

● boardPostMappingDto에 BoardDto를 만들어 준다.     Controller에 BoardController를 만들어 준다.  board와 RequestMapping해주고board의 post 페이지와 GetMapping을 해준다.   다음은 view에 새로운 폴더인 board폴더를 만들어주고 그안에 post페이지를 나타낼 post.jsp 파일을 만들어 준다.  post.jsp에서 form을 작성해준다.  BoardController에서 PostMapping을 작성해준다. 값을 넣어 실행시켜본다. 그러면 콘솔창에 해당 파일이 보이게 된다.    ● 이미지 업로드view의 board폴더에 imagepost.jsp 파일을 만들어 준다. 그리고 BoardController에 이미지 업로드를..

IT수업/STS3 2024.05.10

IT 수업 20주차 (133) 업로드 페이지, 다운로드

올린 파일을 확인하는 페이지를 만들어 볼 것이다. UploadController에 list페이지를 매핑시켜준다. 그리고 업로드 된 파일 리스트 확인 페이지인 list페이지를 만들어 준다.   현재 들어있는 폴더를 확인 해본다. 콘솔창에 현재 upload 폴더에 들어있는 폴더가 나오게 된다.   이번에는 폴더 안의 파일 리스트까지 출력하기위해 이중 for문을 사용한다.    UploadController에서 model을 사용해서 base_dir 경로를 가져온다.    list.jsp 파일을 subdir의 경로를 받아오도록 수정해본다.    이번에는 안에 들어있는 파일이 리스트로 출력되도록 작성해본다.    get 동기요청을 막기 위해 a태그의 경로를 javascript:void(0)으로 막아 놓는다. 콘솔..

IT수업/STS3 2024.05.09

IT 수업 20주차 (132) upload

07프로젝트 복사해서 08_FileUpDownload 프로젝트를 만들어준다. view밑에 upload 폴더를 만든다. 파일을 선택할 수 있는 form 태그를 만들어준다.  그리고 controller에 UploadController 클래스를 만들어준다.   그리고 아까 만든 file.jsp를 매핑시켜주는 코드를 작성한다. file.jsp의 input type=file 이 파일 선택부분이다.  파일선택 버튼을 누르면 원하는 파일을 선택할 수 있다.  POST Mapping도 해준다.  여러 파일을 전달하기 위해 multipart/form-data를 entype에 적어준다.multipart는 request를 여러번 보내 파일을 분할하여 작은 사이즈로 보내는 방법이다.  파일을 받기위한 작업을 위해 maven ..

IT수업/STS3 2024.05.09

IT 수업 20주차 (131) 비동기방식

● HTTP GET 메서드는 서버로부터 특정한 리소스를 가져오도록 요청해주는 메서드이다. 오로지 데이터를 가져올 때만 사용해야 하는 것이다. (데이터의 변형이 없다.)  ● HTTP POST 메서드는 서버로 데이터를 전송하여 리소스를 추가하거나 생성하기 위해 사용하는 메서드이다. GET 메서드와 반대로 요청 Header의 Content-Type에 컨텐츠 타입을 명시하며, HTTP 패킷의 Body에는 데이터를 담아 서버로 전송한다. (보통 웹에서는 JSON 형식으로)  ● HTTP PUT 메서드는 요청 페이로드(Payload, 사용에 있어서 전송되는 데이터)를 사용해 새로운 리소스를 생성하거나, 대상 리소스를 나타내는 데이터를 대체한다.(주로 Update기능에 사용)  ● HTTP PUT 메서드는 문서 전..

IT수업/STS3 2024.05.08

IT 수업 20주차 (129) RestController

● RestControllerRESTful 웹 서비스를 제공하는 컨트롤러controller와 차이점은 RestController는 controller와 달리 Response Body가 생성되는 방식이다. @RestController 어노테이션은 말 그대로 @Controller와 @ResponseBody가 합쳐진 어노테이션이라고 생각하면 된다. @Controller와 다르게 반환하려는 주류는 JSON 형태의 객체 데이터다. REST API를 개발할 때 주로 사용하며 마찬가지로 ResponseEntity로 감싸서 주로 반환한다.   비동기 요청과 같이 쓴다.  restcontroller 패키지를 만들고 그 안에 SimpleRestController.java 클래스를 만들어 준다.        servlet-..

IT수업/STS3 2024.05.08

IT 수업 20주차 (128) 트랜잭션 처리

● AOP - 관점(Aspect)지향 프로그래밍으로, 관점을 기준으로 다양한 기능을 분리하여 보는 프로그래밍- 관점(Aspect)이란, 부가 기능과 그 적용처를 정의하고 합쳐서 모듈로 만든 것- 관점지향 프로그래밍은 객체지향 프로그래밍을 보완하기 위해 쓰인다. Spring AOP는 런타임 시점에 적용하는 방식을 사용한다. 이유는 컴파일 시점과 클래스 로딩 시점에 적용하려면 별도의 컴파일러와 클래스로더 조작기를 써야 하는데, 이것을 정하고 사용 및 유지하는 과정이 매우 어렵고 복잡하기 때문이다.  기본적으로 트랜젝션 처리하려면 try, catch로 예외 처리해야한다. - 반복되는 구간 -저 메모장의 코드 중 반복된는 구간은 이 코드들이다.try{Connection conn = dataSource.getCo..

IT수업/STS3 2024.05.08

IT 수업 20주차 (126) MYBATIS 동적 쿼리

● 동적쿼리동적 쿼리란 상황에 따라 다른 문법의 SQL을 적용하는 것을 말하며 런타임 중에 조건에 따라 쿼리를 생성하고 실행하는것을 의미한다. 즉, 쿼리의 일부 또는 전체가 런타임 데이터나 사용자의 입력에 따라 변경된다. - 동적 SQL요소를 사용해 동적 쿼리를 작성한다.: , , , , , , ,   MemoMapper.java에서 작성한다.  MemoMapper.xml 에서 동적쿼리를 적용시킨다. - if 문 그리고 MybatisTests에서 테스트해본다.   여기서 null 체크 하고 다시 출력해준다.   text에 O가 들어가있는 것만 출력시켜보기위해 param을 넣어준다.    when을 사용해서 다중분기문을 작성해본다.열이 2개이기 때문에 when 분기문을 2개만 작성하면 된다. conditi..

IT수업/STS3 2024.05.07

IT 수업 20주차 (126) MYBATIS service 연결

db연결은 dao가 하고 service는 dao를 사용하므로 service를 연결해본다.( service - dao - mapper )  전체적인 데이터 흐름은 Web Browser(웹 브라우저)가 데이터를 요청하면 DB(데이터베이스)에서 데이터를 반환하여 웹 브라우저가 최종적으로 데이터를 받는다. 1. Controller Controller는 웹 브라우저의 요청을 전담하여 처리한다. 다음 Service를 호출한다. 2. Service Service는 비즈니스 로직을 수행한다. DB에 접근하는 DAO를 이용해 결과값을 받는다. 3. DAO DAO는 DB에 접속하여 비즈니스 로직 실행에 필요한 쿼리를 호출한다. 4. DB DB에서 쿼리를 실행하고 결과값을 반환한다. 5. DTO 각 계층이 데이터를 주고받을..

IT수업/STS3 2024.05.07

IT 수업 20주차 (124) MYBATIS CURD 1

● MyBatis MyBatis는 자바 개발자들이 데이터베이스를 쉽게 다룰 수 있도록 도와주는 오픈 소스 ORM(Object-Relational Mapping) 프레임워크이다. MyBatis는 데이터베이스 쿼리와 프로그래밍 언어 코드를 분리하여 코드가 간결해지기 때문에 유지보수성과 생산성을 높이며 동적 쿼리 작성이 가능하다. 또한 SQL 쿼리를 직접 작성할 수 있으므로 유연하다.  ● SQL Mapper: Object와 SQL의 필드을 매핑하여 데이터를 객체화하는 기술. 객체와 테이블간의 관계를 매핑하는 것이 아니라, SQL문을 직접 작성하고 쿼리 수행결과를 어떠한 객체에 매핑하여 줄 지 바인딩하는 방법. 즉 SQL 의존적인 방법이다. ex) JdbcTemplate, Mybatis  ● ORM (Obje..

IT수업/STS3 2024.05.07

IT 수업 19주차 (123) DB연결하기

앞에서 작성한 03프로젝트를 복사 붙여넣기 하여 04프로젝트를 만든다. maven repository로 가서 mysql, spring-jdbc, hikaricp 코드를 복사하여 pom.xml에 붙여 넣어준다. - mysql      - spring-jdbc  spring-jdbc는 프로젝트의 스프링버전과 맞추기 위해 버전을 수정해준다.   - hikaricp    다 pom.xml에 붙여넣기 하였으면 MAVEN UPDATE를 해주고 해당 파일들이 다운받아졌는지 확인해본다.     config안에 DataSourceConfig 클래스를 만들어 준다. 그리고 해당 클래스에 @Configuration을 붙여준다.  root-context.xml에 가면  dataSourceConfig 빈이 만들어 진 것을 확인..

IT수업/STS3 2024.05.02