ChatTestProject🔎 앞서 정리한 WebSocket으로 실시간 채팅을 구현하는 프로젝트이다. 닉네임을 설정하여 들어간 후 n명과 대화를 한다. https://steady-record.tistory.com/entry/WebSocket [Spring] WebSocket 기초 예제 Socket? WebSocket?🔎 - Socket Socket는 네트워크 통신을 위한 도구로, 무전기나 전화기와 같이 프로그램 간에 데이터를 주고받을 수 있게 해준다. 이는 특정한 인스턴스가 아닌 통신 규격을 나타낸다. steady-record.tistory.com 파일구성🔎 상위 패키지(폴더) 하위 패키지(폴더) 파일명 역할 src/main/java com.test.controller ChatController.java..
Socket? WebSocket?🔎 - Socket Socket는 네트워크 통신을 위한 도구로, 무전기나 전화기와 같이 프로그램 간에 데이터를 주고받을 수 있게 해준다. 이는 특정한 인스턴스가 아닌 통신 규격을 나타낸다. 프로그래밍 언어들은 이미 Socket을 구현해두어 프로그래머가 손쉽게 네트워크 통신을 구현할 수 있다. 브라우저도 네트워크를 통해 데이터를 주고받을 때 Socket를 사용하여 통신한다. 그러나 최근에는 웹 기술의 발전으로 인해 Socket 사용률이 줄어들었다. - WebSocket WebSocket은 웹상에서 동작하는 Socket으로, 기존의 웹 통신 방식과는 다르게 양방향 통신을 지원한다. Ajax와 유사한 면이 있지만 Ajax는 단방향 통신에 주로 사용되며, WebSocket은 웹 ..
MyBatisSimple Project🔎 MyBatis 적용 방법에는 두가지 방식이 있다. 1. XML Mapper 를 사용하는 방식 2. Interface Mapper를 사용하는 방식 Interface Mapper를 사용하는 방식이 XML Mapper를 사용하는 방식보다 간단하여 더 추천한다. ※XML Mapper를 사용하는 방식은 아래 글을 참고한다. https://steady-record.tistory.com/entry/Spring-MyBatis-와-Spring-연동하기1-XML-Mapper를-사용한-연동 [Spring] MyBatis 와 Spring 연동하기(1) : XML Mapper를 사용한 연동 MyBatis 예전에는 iBatis라고 불렀다. 영속성 계층, 데이터베이스 조작 계층으로써 JDB..
Address REST API Sever 구축 프로젝트🔎 REST API Server는 개발자에게 제공되는 기능들을 모아놓은 서버로 클라이언트 측 기능이 전혀 없다. 기존 사용했던 MVC 디자인 패턴에서 View 빠진 패턴으로 서버와 DB 통신만 이루어진다. 화면 구축이 없는 것이 각종 Open API 서버와 동일하다고 볼 수 있다. 파일 구성🔎 패키지(경로) 파일명 com.test.controller AddressController.java RestController.java com.test.domain AddressDTO.java com.test.persistence AddressDAO.java(interface) AddressDAOImpl.java RESE API Server는 view를 만들지 않..
JUnit🔎 Java 언어를 위한 단위 테스트 프레임워크 중 하나로, 소프트웨어의 각 부분이 의도한 대로 작동하는지를 확인하는 데 사용된다. 단위 테스트(설정 테스트)🔎 단위테스트는 각각의 메소드 또는 기능이 의도한 대로 작동하는지 확인함으로써 코드의 신뢰성을 확보할 수 있다. 또한, 코드가 예상대로 동작함을 확인하면 개발자들은 안정적이고 확신을 가지고 코드를 수정하고 확장할 수 있다. 업무 협업 시에는 반드시 자신의 코드를 테스트를 거치고 공유한다. 만약 검증을 하지않고 에러가 발생한다면 확인해야할 곳이 너무 많아 힘들어지므로 단위테스트를 통해 에러가 발생하지 않는 범위를 늘려가며, 안정성을 확보한다. - 파일 구성 상위폴더 패키지 파일명 src/test/java com.test.java.db JDBC..
AOP 웹에 적용하기🔎 이전 수업때의 AOP는 콘솔과 Xml 설정으로 진행했다. 지금 수업의 AOP는 웹과 어노테이션 설정으로 진행한다. 이전 글 참고 https://steady-record.tistory.com/entry/Spring-Spring-AOP-기초-및-예제 [Spring] Spring AOP 기초 및 예제 🔻Spring AOP AOP : Aspect Oriented Programming 관점 지향 프로그래밍 관점(=관심사)는 업무 구현시 주업무가 아닌 나머지 보조 업무를 의미한다. 횡단 관심사를 별도의 모듈로 분리하여 코드의 재사용성 steady-record.tistory.com aop는 글쓰기, 수정하기, 삭제하기 , 방문 기록 로그 남기기 기능 등 권한체크할 때 주로 사용한다. 파일 구성..
다중파일 업로드🔎 파일을 여러개 올리기위해서는 설정이 더 필요하다. 이번에는 DB를 연결하여 게시물에 파일을 첨부해서 올리고 그 글을 읽는 기능을 구현한다. 1. 게시글 추가 2. 게시글 (목록/상세)읽기 3. 게시글 밑 사진 내의 위치정보로 지도 출력 *이전 글과 이어집니다. https://steady-record.tistory.com/entry/Spring-Apache-Commons-IO-라이브러리1-file-입출력 [Spring] Apache Commons IO 라이브러리(1) : file 입출력 Apache Commons IO 라이브러리🔎 Apache 소프트웨어 재단에서 제공하는 오픈 소스 라이브러리로, Java 언어로 작성되어 있다. 입출력 작업을 보다 편리하게 수행할 수 있도록 다양한 유틸리티..
Apache Commons IO 라이브러리🔎 Apache 소프트웨어 재단에서 제공하는 오픈 소스 라이브러리로, Java 언어로 작성되어 있다. 입출력 작업을 보다 편리하게 수행할 수 있도록 다양한 유틸리티 메서드와 클래스를 제공한다. 주로 파일 및 스트림 처리와 관련된 작업을 단순화하고 개선하는 데 사용된다. 파일 구성🔎 패키지(경로) 파일명 com.test.file.controller FileController.java views add.jsp addok.jsp webapp/resources/files 환경설정🔎 기본 설정 아래 글을 참조한다. https://steady-record.tistory.com/entry/Spring-스프링-프로젝트-설정-일괄-적용 [Spring] 스프링 프로젝트 설정 일괄 ..
Tiles 프레임워크🔎 레이아웃 프레임워크 페이지간 공통되는 레이아웃(뼈대)을 구성하고 관리하는 기술이다. 이전 레이아웃 작업을 include로 작업하여 페이지를 분리시켜서 최대한 재사용하였다. 하지만, include는 조직적인거나 대중적인 작업을 하기에는 부족한 면이 많았다. 규모가 있는 작업을 할 때는 라이브러리나 프레임워크를 사용한다. 그 중 Tiles 프레임워크가 스프링과 연동을 하여 오랫동안 사용한 프레임워크이다. tiles를 사용해보면 다른 디자인 프레임워크와 비슷하여 크게 어렵지않을 것이다. 레이아웃🔎 상위 메뉴는 고정이며, 회원 / 관리자마다 사이드메뉴를 다르게 출력한다. 구현 기능🔎 1. 메인 (index.do) 2. 회원 회원정보(member/info.do) 활동내역(member/his..
코드 조각 관리 게시판 Spring MVC 프로젝트에 Spring MyBatis 를 이용한다. 코드 조각 관리 게시판은 해당 언어에 맞춰 코드 하이라이트가 되는 게시판이다. 버튼을 누를 때마다 해당 언어만 필터링 되어 출력된다. 파일 구성🔎 패키지(경로) 파일명 com.test.controller CodeController.java com.test.persistence CodeDAO.java (interface) CodeDAOImpl.java com.tet.domain CodeDTO.java views list.jsp view.jsp add.jsp src/main/resources/mapper code.xml root script.spl 초기 세팅🔎 컴포넌트 등록 - servlet-context.xml ..