본문 바로가기

Web16

Java TCP/IP 통신 (2) TCP / IP 프로토콜을 이용해서 서버와 클라이언트의 통신을 하는 개념적인 부분을 설명했었는데, 이제 자바로 서버 측에서 ServerSocket을 만들어 accept() 메소드를 이용해서 클라이언트와의 연결을 기다립니다. 이 accept 메소드의 반환형이 클라이언트 소켓인데, 정확하게는 이 반환형이 Socket입니다. 우리가 Client에서 Socket clientSocket = new Socket(ip, port); 해서 생성한 소켓으로 Server와 통신을하죠? 사실 말이 서버-클라이언트라서 서버에서는 대단한 ServerSocket을 생성하고 뭐 이런 것처럼 보이지만 사실 서버에서도 서버 소켓을 이용해서 포트를 열어놓고 클라이언트와의 연결이 되는 것을 기다리는데까지만 역할을 하고, 이 ServerS.. 2016. 10. 7.
Java TCP/IP 통신 (1) Java를 공부하면서 한번씩 보게되는 채팅 프로그램. 처음 그리고 두번째 공부할 때까진 별 생각 없었는데 한 세번정도 다시 본 지금. 소켓, TCP/IP, 포트, 쓰레드 등 이런 용어도 생소했던 제일 처음, 자바로 멀티 채팅 프로그램을 공부했을 때 그 때 궁금해하던 것들을 정리해야겠다는 생각이 들었습니다. 그 땐 책을봐도 이해가 안갔던 부분들이 많았는데 지금은 '책을 보면 이해간다' 정도이지 뭐 엄청 쉽게 풀어서 설명하고 소스를 안보고 짤만큼 잘해서 내부적인 부분까지 완벽하게 아는 것도 아니라서 크게 별다른건 없겠지만, 그래도 궁금해하던 것들에 대해 한번 정리는 해야겠으니까! 정리 내용에 순서는 없지만, 전체적인 그림을 그리고 그 그림을 프로그램으로 짜는 순서로 정리할 계획입니다. 먼저, 컴퓨터와 컴퓨터.. 2016. 10. 7.
Get방식과 Post 방식의 차이점 Get방식과 Post 방식은 HTTP 프로토콜을 이용해서 서버에 요청을 할 때 사용하는 방식입니다.이 두가지 방식에는 어떤 차이가 있느냐? 1. URL 노출 Get은 전송 요청 URL에 파라미터에 정보를 담아서 서버로 보냅니다. 로그인으로 예를 든다면, 내가 입력 폼에서 ID와 Password를 입력했고, 로그인 버튼을 누름으로써 서버에 이 정보를 보내는데, 이때 만약 Get방식을 사용한다면 요청을 보내는 URL 주소 뒤에 파라미터 값이 노출되어 전송됩니다. 위 사진에서처럼 16진수로 값이 전송되는 것을 볼 수 있습니다. 하지만 Post 방식은 다릅니다. URL에 노출되지 않고 Http body 안에 포함되어 전달됩니다. -> 이 가시적인 부분때문에 Get이 Post보다 보안 측면에서는 더 낫다고 하지만.. 2016. 9. 18.
Spring MVC Board(3)_MyBatis ■ MyBatis란? MyBatis란 Java에서 관계형 데이터베이스 프로그래밍을 쉽게 할 수 있도록 하는 프레임워크이다. DB 프로그래밍을 위해 이전에 JDBC를 이용하여 게시판을 만들었었는데(Spring MVC Board), 이런 JDBC는 세부적인 작업이 가능하도록 작업 별로 다양한 메소드를 지원하는데, 이와 같이 많은 메소드의 호출은 개발자에게 부담이 된다. 따라서 MyBatis는 잘게 나누어져있는 JDBC에 비해 적은 메소드 호출 수로 개발을 좀 더 편하게하고, 여러 줄에 걸친 SQL을 쉽게 작성하기 위해 SQL을 자바코드에 정의하기 보다 XML에 정의해서 보기에도 편하고 수정하기에도 편한 환경을 제공하는 프레임워크이다. ■ MyBatis 환경설정 1. pom.xml에서 jar 파일 추가 ( p.. 2016. 5. 20.
Spring MVC Board(2)_Spring JDBC ■ Spring JDBC 개요 Spring JDBC : JDBC가 가지고 있는 문제점을 해결하기 위해 JDBC를 한 단계 더 추상화시켜서 새로운 JDBC API를 제공 이전에는 DAO에서 무수히 많은 중복 코드가 발생하였었다. Connection 생성, PrepareStatement 생성, SQLException 처리와 같이 중복적으로 구현해야하는 소스가 너무 많았다. 따라서 하나의 SQL문을 만들기위해 StringBuffer를 사용하는 과정이 상당히 비효율적이었다. 그렇다면 SQL문을 메소드 내에 구현할 필요 없이 상수처럼 사용하게 된다면? Spring 프레임워크는 기존의 JDBC를 이용하여 Persistence 계층을 구현할 때 발생하는 문제점을 해결하기 위해 JDBC를 추상화한 API를 새롭게 제공.. 2016. 5. 19.
Spring MVC Board (1)_Spring Board ■ Spring MVC Board 환경 1. Eclipse의 Server에 context.xml에 다음과 같은 코드 추가 2. C:드라이버에서 ojdbc6.jar 파일 찾아서 복사 -> C:\Users\BUFS\.m2\repository\ojdbc\ojdbc6\11.2.0.3 (이클립스 실행 시 경로를 찾을 수 없다고 나오는 위치) 에 ojdbc6-11.2.0.3 으로 이름 바꿔서 붙여넣기 3. 다시 Board 스프링 프로젝트로 돌아와서 pom.xml 에 다음과 같은 코드 추가 ojdbc ojdbc6 11.2.0.3 ■ Spring MVC Board - Command : 인터페이스 -> JSP&Servlet에서 Action인터페이스 역할 - Command 인터페이스를 구현한 Command클래스들이 DAO.. 2016. 5. 19.