일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 회원가입
- 서블릿
- 네비게이터
- html5
- 제이쿼리
- 백엔드
- Ajax
- spring
- 마이바티스
- javascript
- 스프링
- Linked List
- 웹페이지
- 프레임워크
- c programming
- 미로 생성 알고리즘
- MVC
- 오라클
- Binding
- 로그인
- css3
- 웹개발
- dbms
- jQuery
- 웹서비스
- jsp
- mybatis
- 프론트엔드
- 풀스택
- 비밀번호찾기
- Today
- Total
목록MVC (5)
Programmer's Progress

게시글 수정 구현 방법과 관련된 내용을 소개하기 전에 앞서 게시글 수정을 구현하는 것이 얼마나 복잡하고, 어려운 것인지를 설명해야 할 것 같다. 먼저 게시글을 수정하기에 앞서, 수정해야 할 게시글의 제목, 내용, 이미지 등등을 백엔드 서버에 요청해야 할 것이다. 이때 JQuery의 AJAX기능을 활용해 비동기식으로 요청한다. 게시글의 제목이나 내용 자체는 DB에 저장된 내용을 SQL Mapping방식인 MyBatis프레임워크를 이용해 얻어오기만 하면 되므로 간단하다. 그런데 이미지는 이미지 자체를 DB에 저장한 것이 아니라, 서버 컴퓨터의 D:드라이브에 저장되어있고 DB에는 해당 게시글의 번호, 원본 이미지 이름, 난수 이름만을 저장하고 있다. 아래의 릴레이션 스키마를 확인해보자. 하나의 게시글은 여러 ..

게시글 삭제 구현 과정을 설명하기 전에 짚고 넘어가야 할 것이 있다. 먼저 기존의 코드 중에서 새로운 게시글, 메시지 번호를 얻는 방법을 변경하였음을 밝힌다. 기존 방식은 이렇다. SELECT NVL(MAX(article_id),0)+1 FROM free_board와 같이 현재 존재하는 게시글들 중에서 가장 게시글 번호가 큰 게시글의 번호 + 1을 새로운 게시글에 할당한다. 이 방식에는 큰 문제가 있었다. 1. 현재 게시글 목록에 번호가 1, 2, 3인 게시글들이 있고 각각 서로 다른 탭에서 참조하고 있다고 가정하자. 2. 첫 번째 탭에서 3번 게시글을 삭제하고, 다시 새로 게시글을 작성한다. 3. 두 번째 탭에서 기존 3번 게시글을 삭제하려고 하면, 이미 삭제된 게시글이 아닌, 2번 과정에서 작성한 새..

글을 수정하는 동작은 다음 포스팅에서 다룰 예정이다. 이유를 간단하게 밝히자면, 게시글 자체의 제목, 내용을 DB에서 새로운 내용으로 UPDATE 하는 것 자체는 정말 쉬운 일이지만, 해당 게시글에 첨부된 이미지 파일들의 경우 이것이 기존에 존재하는 이미지 파일인지 아닌지, 기존 이미지 파일을 완전히 삭제하려는 것인지 단순히 수정하려는 것인지 판단하는 것이 상당히 복잡한 과정을 거쳐 이루어지기 때문이다. 만약 게시글당 첨부할 수 있는 이미지 파일이 최대 1개로 고정되어있다면 단순히 글을 수정할 때 업로드하는 이미지 파일의 이름과 서버에 저장된 이미지 파일의 이름이 같은지 다른지 판단해서 처리하면 쉽지만 첨부한 파일이 여러 개인 경우에는 그렇게 할 수가 없기에 방법을 고안하느라 구현 시간도 오래 걸렸다. ..

메시지 읽기 기능을 구현하는 과정을 설명하기 전에 먼저 웹서비스의 전반적인 구조를 변경했음을 밝힌다. 기존에는 스프링 프레임워크, 마이 바티스 프레임워크 등, 프레임워크의 도움을 받지 않고 라이브러리 추가부터 의존관계 구성, MVC 패턴으로 설계 등등 많은 것들을 직접 구현했었다. 하지만 스프링 프레임워크를 사용하지 않고는 DAO, Service, Controller 등의 클래스 객체들이 각각의 객체들의 정보를 담아두도록 일일이 생성자 및 setter( ) 메서드를 설정하기란 번거로운 일이었고 또한 마이바티스 프레임워크 없이 DAO클래스에서 질의를 수행할 때에는 일일이 SQL문을 작성해주어야 했기에 상당히 가독성도 떨어지고, SQL문을 작성하는 것도 어려웠다. 특히 DBMS에서 단일 SQL문에 대해서는 ..

기본적인 회원가입과 로그인을 구현했으니, 로그아웃과 아이디/비밀번호 찾기를 구현할 차례다. 기본적인 원리는 아래와 같이 설계되었다. 우선 스키마 다이어그램에서 빨간색 애트리뷰트는 기본키, 파란색 애트리뷰트는 외래 키를 의미한다. 그렇다면 노란색은 어떤 애트리뷰트를 의미하는 걸까? 바로 UNIQUE 한 값, 즉, 후보 키로써의 역할을 수행함을 의미한다. 상식적으로 회원가입을 진행할 때 같은 이메일, 전화번호로 회원가입이 가능한 경우는 거의 경험하지 못했을 것이다. 그도 그럴 것이, 하나의 이메일, 전화번호는 모두 한 명의 사람에게 속해있기 때문이다. 각 개인은 회원가입 시 입력한 전화번호와 이메일 주소를 아이디를 찾을 수 있게 된다. 그렇다면 비밀번호는 어떤 식으로 찾을 수 있게 할 것인가? 회원가입 시에..