Web Programming
-
3 Way-Handshake 란?Web Programming 2020. 9. 16. 18:13
3 Way-Handshake란 말 그대로 3개의 경로를 통해 연결이 이루어지는 구조를 의미한다. TCP(Transmission Control Protocol)의 가장 큰 특징인 연결지향적인 특성을 갖는 과정에 이 구조가 사용된다. (TCP에 대해서는 다음 글을 참고하자.) 참고 : 3 Way-Handshake는 간단하게 이러한 구조를 지닌다. A가 B에게 연결 여부를 묻는다. B는 A에게 연결 여부를 답하며 연결 여부를 묻는다. A도 B에게 연결 여부를 답한다. 즉 이 구조는 전송하는 측과 전송받는 측의 선로 연결이 잘 되어있는지 확인하는 과정이라고 할 수 있다. 네트워크 상에서 이는 연결 여부를 패킷을 주고받음으로써 확인한다. 이 과정에 대해 자세히 알아보자. 클라이언트와 서버 혹은 클라이언트와 클라이..
-
Mybatis 란?Web Programming/Mybatis 2020. 9. 16. 17:10
퍼시스턴스 프레임워크(Persistence Framework) : 데이터의 CRUD를 다루는 클래스 및 설정 파일들의 집합 Mybatis는 쉽게 말해 JDBC(Java DataBase Connectivity)의 기능을 손쉽게 만들어주는 퍼시스턴스 프레임워크(Persistance Framework)다. 자바에서 기본적으로 JDBC api를 제공해주지만, JDBC의 경우 1개 클래스에 반복된 코드가 존재하고, 한 파일에 Java와 SQL이 혼재하는 구조때문에 재사용에 어려움이 있는 단점이 있다. 특징 MyBatis Mapper Interface의 적은 구문으로 DB 연동을 처리 SQL 명령어를 자바 코드에서 분리하여 XML파일에 따로 관리 스프링 연동 모듈을 제공해주어 스프링 설정에 용이 구조 DataBas..
-
JSTL(JSP Standard Tag Library) 정리Web Programming 2020. 9. 15. 19:32
JSTL(Jsp Standard Tag Library) : 자바서버 페이지 표준 태그 라이브러리 JSTL은 JSP페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공한다. 일반적으로 JSTL은 EL(Expression Language)와 조합하여 사용하는 경우가 많다. core를 header에 추가해서 사용할 수 있다. EL을 사용해 ${변수이름} 으로 값을 불러와 사용할 수 있다. 이 변수는 page 데이터 영역에서 선언되기 때문에 으로 출력이 불가능하다. set 태그를 통해 선언한 변수를 제거할 때 사용된다. scope 속성을 통해 원하는 영역의 변수만 제거할수도 있다. 변수 내용을 출력할 때 사용되는 태그다. EL로도 출력할 수 있지만 c:out 태그의 escapeXm..
-
컴포넌트(Component)와 모듈(Module)Web Programming 2020. 9. 11. 16:41
웹을 공부하다보면 '재사용성이'라는 단어와 함께 컴포넌트와 모듈이라는 단어가 공공연하게 등장한다. 둘 다 '어떠한 구조와 기능의 최소 단위' 와 유사한 개념으로 정의되고 있기에 이 둘을 혼용하는 경우가 잦다. 하지만 이 둘은 명확하게 다른 의미를 지니고 있다. 컴포넌트(Component) "실행 중인 소프트웨어의 활동 단위" 컴포넌트는 런타임 개체를 참조하고 가시성이 없는 단위이다. 실제로 운용 모델에서는 컴포넌트가 실행 가능한 바이너리 형식(0과 1의 집합)으로 전달된다고 한다. 따라서 컴포넌트는 실행 중인 소프트웨어의 활동 단위라 할 수 있다. 모듈(Module) "만들어진 산출물의 구현 단위" 모듈을 검색해보면 "가장 첫 번째, 그리고 가장 맨 앞에 위치하는 구현의 단위" 등의 애매한 정의가 나온다..
-
QuestionWeb Programming 2020. 9. 11. 16:06
Q. 컴포넌트와 모듈의 차이는? 2020/09/11 - [Web Programming] - 컴포넌트(Component)와 모듈(Module) Q. AngularJS에서 Ajax를 사용하는 경우가 있던데 둘 다 SPA를 위해 사용하는 것이 아닌가? A. Ajax는 웹페이지 전체를 리로드 하지 않고 필요한 부분만 불러와 사용할 수 있는 방식을 의미하고 이는 AngularJS 혹은 React.js에서 각기 다른 방식으로 구현된다. Q. 라이브러리와 플러그인의 차이는? 라이브러리는 코드를 사용할 수 있게 해주는 하나의 객체를 의미하고 플러그인은 이를 연결해주는 것을 의미한다. Q. 여기서 []는 어떤 의미인가? var app = angular.module("myApp",[]); Q. 여기서 ng-cloak는 어..
-
AngularJS에서 CRUD 구현하기 #3Web Programming/Angular JS 2020. 9. 11. 15:57
마지막으로 Update를 구현해보도록 한다. 아이디를 받아오는 Delete와 생성을 가능하게 하는 Create가 있으니 그렇게 어렵지 않다. 간단한 구현을 목표로 하고있으므로 따로 창을 생성하지 않고 input 태그를 그대로 사용하자. No. Title Name Update Delete {{$index+1}} {{item.title}} {{item.writer}} Update Delete 게시판 table을 다음과 같이 수정한다. Delete와 마찬가지로 버튼을 구현해 update 메소드와 연결시킨다. $scope.update = function(id) { if(!id) return; //예외처리 var idx = -1 for(var i = 0; i < $scope.boardlist.length; i++..
-
AngularJS에서 CRUD 구현하기 #2Web Programming/Angular JS 2020. 9. 11. 12:27
지난 글에 이어 오늘은 Create를 구현해보자. 우선 데이터를 받아와 저장할 수 있는 board의 포맷이 필요하다. $scope.boardForm = {}; 태그 내부에 boardForm이라는 변수를 만들어준다. 이 변수는 $scope 객체에서 JSON 변수로 저장된다. Title : Name : Add 게시판 태그 위에 이렇게 태그를 배치하고 내부에 table을 만들어준다. Title과 Name을 입력 받을 수 있는 input을 만들어 boardForm이라는 형식으로 저장한다. submit 버튼을 통해 insert 함수가 실행되게 한다. $scope.insert = function() { var newId; if(! $scope.boardlist.length) { newId = 1; }else { n..