일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- c programming
- 서블릿
- 제이쿼리
- mybatis
- Linked List
- javascript
- 마이바티스
- dbms
- Ajax
- jQuery
- 백엔드
- 웹개발
- 미로 생성 알고리즘
- 비밀번호찾기
- 로그인
- jsp
- 회원가입
- MVC
- 프론트엔드
- 스프링
- 웹서비스
- 웹페이지
- Binding
- css3
- 프레임워크
- 네비게이터
- html5
- spring
- 풀스택
- 오라클
- Today
- Total
목록전체 글 (41)
Programmer's Progress

데이터베이스는 여러 의미 있는 값을 지닌 기록들인 데이터를 관련 있게 모아놓은 것을 말한다고 한다. 데이터베이스를 배우기 전까지는 나는 파일의 형태로밖에 데이터를 다루지 못했다. 가령 성적을 입력하면 평점과 이수 학점을 보기좋게 계산해서 DOS창에 일일이 수작업으로 GUI를 구성하여 출력하는 C 프로그램을 제작했던 경험이 있는데, 이 프로그램의 문제는. txt 파일의 형태로 데이터를 기록하다 보니 당연히 띄어쓰기가 잘못되거나, 파일의 경로가 달라지거나, 이름이 같은 사람에 대해서는 서비스를 제공할 수 없다거나... 데이터를 체계적으로 관리할 수 없었다는 것이었다. 때문에 프로그램의 규모가 상당히 작아질 수밖에 없었다. 그러나, 데이터베이스와 DBMS에 대한 공부를 하면서 이제 실전에 적용할 수 있겠다는 ..
마우스 커서를 움직이면, 그 주변에 거품이 나타나 12방향중 하나로 퍼지다가 사라지는 애니메이션 효과 플러그인이다. 직접 개발한 플러그인으로써, 사용가능한 속성은 다음과 같다. $().mouseBubble({ //버블의 색상을 헥사코드로 지정, 배열로 설정해야함 bubbleColors:["#7BC6BF","#B3E6EC","#DDF7F7","#E4E6EE","#376C6D"], //버블의 지름을 정수로 설정, 20을 입력하면 지름이 20px이 됨 bubbleDiameter:20, //버블의 외곽선 두께를 정수로 설정, 2를 입력하면 2px의 두께를 가짐 bubbleBorder:2, //버블의 기본 이동거리를 설정, 100을 입력하면 기본으로 100px 이동 bubbleDistance:100, //버블애니..

이번에는 JSP를 이용해서 동적으로 화면이 구성되도록 하였다. 기존에는 HTML, CSS만을 이용해서 정적인 콘텐츠를 요청, 응답할 수 밖에는 없었다. 예를 들어 로그인을 하기 전과, 로그인한 후의 상태에 따라 메인 페이지에서 서로 다르게 웹페이지가 구성되도록 할 수 없었다는 것이다. 홍길동이라는 사람이 로그인에 성공하여 다시 메인 페이지로 복귀했을 때 최우 상단의 로그인을 위한 영역은, 홍길동이라는 사용자에 대한 정보를 위한 영역으로 쓰여야 하는데 기존의 HTML 문서를 요청하는 방식은 정적 콘텐츠를 요청하는 방식이었으므로 레이아웃을 변경할 수가 없었다. 이처럼 일반적인 웹서버에서는 정적인 콘텐츠만 제공하고, 제공받을 수 있으므로, 쇼핑몰에서 흔히 볼 수 있는 광고나 세일 품목 등, 실시간으로 변경될 ..

사람들은 로그인 페이지에서 한번 로그인을 하면, 그 서버의 모든 웹페이지가 나의 로그인 정보를 알고 있을 것이라 생각하기도 한다. 그러나 실상은 그렇지 않다. HTTP 프로토콜은 애플리케이션 레이어상에서 쓰이며 stateless한 프로토콜이다. 서버에서 클라이언트의 정보를 저장해두지 않는다. HTTP Request 메세지에는 요청 시에 필요한 정보가 GET, POST 등의 방식으로 전달이 된다. 즉, 그 메세지에는 요청에 필요한 모든 정보가 이미 들어있기에, 굳이 서버에서 정보를 추가적으로 저장할 필요가 없다. 트랜스포트 레이어상에서, 특히 TCP가 Reliable Data Transfer를 제공하기 위해서 Go-Back-N 방식과 Selective Repeat방식으로 이를 처리하고, RDT시간을 줄이기..

ServletContext 클래스는 톰캣 컨테이너 실행 시에 각 콘텍스트마다 하나의 객체가 생성된다. 톰캣 컨테이너가 종료되면 이 객체가 소멸되는데, 이 객체를 통해 웹 애플리케이션의 모든 서블릿들이 자원이나 정보를 미리 바인딩해서 공유하여 사용할 수 있도록 한다. 쉽게 말해서 전역변수를 선언하는 것과 비슷한 효과를 얻을 수 있다. 반면 ServletConfig 클래스는 각 서블릿 객체들마다 생성되는 클래스다. 즉, 각 서블릿은 고유한 ServletConfig 객체를 가지며, 지역변수처럼 데이터를 읽어 들일 수 있게끔 한다. 이 클래스는 데이터를 초기화할 때 주로 사용한다. 이렇게 글로만 나열해둔 정보로는 도대체 어떻게 동작하는지 잘 알수가 없었다. 직접 사용해 필요성을 느끼기로 했다. LoginServ..

이전에는 에브리타임 웹 서비스의 메인 페이지만 구현했었다면 이번에는 로그인 및 회원가입 페이지를 구현했다. 물론 아직 JSP를 배우지 않았기 때문에 순수하게 HTML, CSS, JS만 사용하여 웹 문서를 작성했다. 따라서 로그인 버튼이나 회원가입 버튼을 클릭하면 그에 해당하는 HTML 문서를 요청하도록 처리했다. 아직 로그인을 유지하는 방법에 대해서는 공부하지 않았다. 데이터 통신 강의에서 배운 내용으로는, 아마 쿠키나 세션이라는 요소를 이용해서 로그인 정보를 유지할 것으로 예상하는데, 쿠키는 그 크기에 한계가 있고, 또 보안상으로 좋지 않아 크게 보안이 중요하지 않은 장바구니에 활용할 것 같다. 세션방식이라면 서버에 그 정보를 담아두기 때문에 보안 관점에서는 좋겠지만, 서버의 부담이 커질 수 있으리라 ..

이번 방학에는 서블릿과 웹컨테이너, JSP, Spring등등 기존의 프론트엔드 지식을 기반으로 백엔드 지식을 공부하는 것으로 방향을 정했다. 기존에는 프론트엔드의 기본을 배웠고, Ajax를 활용한 데이터 요청도 조금이나마 시도했었다. 그러나 사실 백엔드는 커녕 프론트엔드 사이드의 동작을 잘 이해하지 못했었다. 브라우저에서 데이터를 요청하면 어떻게 서버까지 전달이 되고, 어떤 처리를 거쳐서 어떤 데이터를 클라이언트에게 전달하는지... 가령 라우터의 동작이라든지, TCP 프로토콜 P2P방식의 데이터 송수신, 포트포워딩 등등... 데이터 통신과목이 비록 어렵긴 했어도 전반적으로 네트워크가 어떤식으로 구성되고, 동작하는지를 이해할 수 있었다. 또한 쓰레드가 무엇인지, OS는 어떤 역할을 수행하고, 메모리에 로드..

이전에 C언어로 작성한 랜덤 미로 생성 알고리즘은 성공적이었다. 정상적으로 원하는 형태의 미로가 구현되는 것을 확인할 수 있었다. 그런데, 마침 이번에 친구가 웹 그래픽스 수업을 들으면서 미로를 탈출하는 간단한 게임을 구현하고자 하는데 미로를 어떻게 하면 만들 수 있을지 그 조언을 구하였고, 이에 웹에서 사용할 수 있도록 Java Script 버전으로 재설계하여 그 소스코드를 전달하기로 했다. 아래는 이것을 그래픽으로 출력한 예제를 구현한 것이다. 버튼을 누르면 미로가 무작위로 생성이 되며, 빨간색 사각형에서 파란색 사각형으로 이동하는 것이 목표다. $(document).ready(function () { var wall = '-1', start = '0', end='1', empty = '2'; var..