본문 바로가기

전체 글

(57)
계층형 게시판(1) 이번 포스팅은 계층형 게시판 프로그램을 구현하도록 하겠다. 게시판은 그 나름대로의 의미도 있겠지만 게시판에서 구현되는 내용들은 다른 프로그램에 많이 사용된다. 예를 들어 글쓰기, 읽기, 삭제하기, 수정하기, 답변하기는 데이터를 조작하는 기본 SQL문이 모두 사용되므로 이와 비슷한 기능들을 하는 프로그램들은 쉽게 접근해서 프로그래밍을 할 수가 있다. 내용이 꽤 많기 때문에 여러 차례로 나누어서 글을 올릴 계회이다. 1. 데이터베이스 설계 먼저 프로그래밍에 앞서 필요한 SQL 테이블을 만들어 보겠다. 게시판에 필요한 테이블은 1개이다. 작성자의 이름과 이메일, 홈페이지, 제목, 본문 내용, 날짜, 조회수 등이 저장되는 테이블이다. 2. 설계 및 구현 계층형 게시판은 쓰기, 읽기, 삭제, 수정, 답변 등의 기..
회원가입 및 로그인 이번 포스팅에서는 지금까지 배웠던 것을 토대로 회원 인증 및 가입 프로그램을 구현해 보도록 하겠다. 회원 인증을 통해서 회원만의 특별한 기능을 제공하고 회원가입은 ID 중복체크, 우편번호 검색 등의 기능 구현을 통해서 JSP의 기본 Scripting Element와 JDBC 기술 그리고 세션의 의미를 명확히 하는 데 더욱 친숙해지는 기회가 될 수 있을 것이다. 1. 데이터베이스 설계 먼저 프로그래밍에 앞서 필요한 테이블을 만들어 보겠다. 총 2개의 테이블이 필요한데, 첫 번째는 회원들의 정보가 저장이 되는 회원테이블이고 두 번째는 전국의 우편번호와 주소가 저장되어 있는 우편번호 테이블이다. 우편번호는 데이터가 많으므로 해당 파일을 첨부파일에 올려놓겠다. 파일에 들어가서 복사하고 붙여넣기 하면 된다. 2...
State 1. State란? 지금까지 우리가 리액트 컴포넌트를 만들 때는, 동적인 부분이 하나도 없었다. 값이 바뀌는 일이 없었기 때문이다. 이번에는 컴포넌트에서 보여줘야 하는 내용이 사용자 인터랙션에 따라 바뀌어야 할 때 어떻게 구현할 수 있는지에 대하여 알아보겠다. 리액트 16.8 이전 버전에서는 함수형 컴포넌트에서는 상태를 관리할 수 없었는데, 리액트 16.8 에서 Hooks 라는 기능이 도입되면서 함수형 컴포넌트에서도 상태를 관리할 수 있게 되었다. 이번에는 useState 라는 함수를 사용해보게 되는데, 이게 바로 리액트의 Hooks 중 하나이다. 바로 예제를 보면서 이해하면 될 것 같다. 가장 많이 쓰이는 count 예이다. [index.js] import React from 'react'; impor..
뷰(View)와 트리거(Trigger) 1. 뷰(View) 뷰(View)는 select문을 저장한 객체라고 할 수 있다. 데이터베이스 존재하는 일종의 가상 테이블을 의미하며 실제 테이블처럼 행과 열을 가지고 있지만, 실제로 데이터를 저장하고 있지는 않다. 본래 데이터베이스 객체로 등록할 수 없는 SELECT 명령을 객체로서 이름을 붙여 관리할 수 있도록 한 것이 뷰이다. 따라서 뷰를 참조하면 그에 정의된 SELECT명령의 실행결과를 테이블처럼 사용할 수 있다. 나중에 사용자가 뷰를 사용하게 되면 마치 뷰가 기본 테이블인 것 같이 만들어 제공한다. 따라서 뷰는 실행 시간에만 구체화되는 특수한 테이블이다. 1) 뷰의 생성 create view 뷰이름[원하는 속성] as select문 [with check option]; // []는 있어도 되고 ..
React 변수 선언 React 컴포넌트를 선언하는 방식에는 두 가지 있다. 바로 함수형 컴포넌트와 클래스형 컴포넌트이다. 오늘 포스팅에서는 각각의 방식으로 어떻게 변수를 선언하는지 간단히 살펴보겠다. 1. 함수형 컴포넌트 [App.js] // import '' from '파일명'; import Comp from "./Comp"; import ClassComp from "./ClassComp"; function App() { return ( // 바로 밑의 태그들을 반환함 // 아래처럼 div와 같은 태글들로 묶어서 내보내야 함 // 아무것도 안 쓰고 로 작성해도 상관 없음 ); } // App을 내보냄으로 index.js에서 받아서 쓸 수 있음 export default App; [index.js] import React ..
DBMS(Database Management System) 개요 1. 데이터베이스의 정의와 특징 1) 데이터베이스 데이터의 집합 여러 명의 사용자나 응용프로그램이 공유하는 데이터틀 동시에 접근 가능해야함 데이터의 저장 공간 자체 2) DBMS 데이터베이스를 관리 운영하는 역할 3) DB/DBMS의 특징 (1) 데이터의 무결성 - 데이터베이스 안의 데이터는 오류가 없어야 함 - 제약 조건이라는 특성을 가짐 (2) 데이터의 독립성 - 데이터베이스 크기 변경하거나 데이터 파일의 저장소 변경 시 기존에 작성된 응용프로그램은 전혀 영향을 받지 않아야 함 (3) 보안 - 데이터베이스 안의 데이터에 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있어야 함 (4) 데이터 중복의 최소화 - 동일한 데이터가 여러 개 종복되어 저장되는 것 방지 (5) 응용프로그램 제..
리액트(React) 사용법 1. 리액트란? 리액트는 사용자 인터페이스를 만들 위한 Javascript 라이브러리이며 처음 만든 곳은 페이스북이다. React는 컴포넌트 기반으로 이루어져 있다. 복잡한 UI를 컴포넌트로 관리하여 돔과 별개로 상태 관리가 가능하다. 또한 vue와 동일하게 데이터가 변경될 때마다 효율적으로 페이지가 갱신되고 랜더링 된다. 이러한 기능으로 좀 더 역동 적인 페이지를 만드는 것이 가능할 것으로 보인다. 가장 큰 장점은 리액트를 배울 경우 추후 React Native를 이용하면 모바일 웹도 개발이 가능하니 일석 이조다. 2. 리액트 프로젝트 생성하기 먼저, React 프로젝트 코드를 작성하기 위해서는 최신 버전의 Node.js 가 필요하다. Node.js가 없을 경우, 아래 링크를 통해서 Node.js를 먼..
세션(Session)과 쿠키(Cookie)_추가 내용 어제 포스팅에서 이미 세션과 쿠키에 대한 전반적인 내용을 다뤘다. 오늘은 지난 번에 언급했던 것처럼, 이 둘의 차이점에 대해서 아주 조금 더 자세히 살펴보도록 하겠다. 1. 쿠키와 세션 비교 Http 프로토콜에서 상태를 지속하지 않음으로 웹을 통한 효울적인 서비스를 할 수 있지만, 그런 특징으로 인해 상태정보에 대한 지속적인 보전이 어렵게 되어 쿠키나 세션을 사용하게 되었다고 이미 설명했다. 쿠키와 세션에 있어서 가장 큰 특징은 어디에 존재하는가에 대한 차이가 가장 두드러진다. 쿠키는 클라이언트에 저장이 된다는 점과 세션은 서버 측에 저장이 되어 있다는 사실이다. 그래서 클라이언트 측에 있는 사용자는 저장된 쿠키를 열어볼 수 있다. 하지만 서버 측에 있는 세션에 관한 정보는 클라이언트 측에서 접근할 수 ..