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

현재 개발 중인 웹 서비스는 보안을 전혀 신경 쓰지 않았었다. 클라이언트에서 서버로 데이터를 전송할 때, 서버에서 모델을 통해 DB에 데이터를 저장할 때 등등 만약 개발이 완료된 웹서비스가 보안 기능을 전혀 제공하지 않는다면 문제가 생길 것이다. 네트워크 보안 수업을 들으면서 SSL을 통해 대칭 암호키를 비밀리에 주고받을 수 있다면 좋겠지만 지금 당장으로는 지식이 부족하여 적용이 어렵다고 판단했고, 비대칭키 암호화를 통해 이를 부분 해결하기로 했다. 원리는 간단하다. 로그인 버튼을 누를때마다 서버는 클라이언트에게 랜덤 한 공개키 값을 보내주고 그에 대응되는 비밀키를 세션에 저장한다. 클라이언트는 전달받은 공개키로 비밀번호를 암호화한 후에 AJAX요청으로 암호화된 비밀번호와 암호화되지 않은 ID를 전달한다..

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

지난 포스팅에는 회원가입을 구현하는 과정과 시연을 보였다. 사실 회원가입이야 이전에도 여러 번 구현해본 적 있었지만, 이번에는 좀 체계적으로 DB를 구성하고 활용하기 위해 최대한 사용자의 릴레이션에는 나이, 성별 등의 서비스 구현에 크게 필요하지 않은 애트리뷰트는 과감히 삭제했고 대신, 아이디를 기본키로 설정후, 이를 외래 키로써 참조하는 릴레이션들을 여럿 구성하였다. 아이디/비밀번호 찾기 회원가입 해당 소스코드는 로그인을 위한 form 태그의 소스코드 일부이다. 상당히 구성이 간단하다. 사용자로부터 ID와 PW를 입력받고, 이 정보가 DB에 존재하는지 여부를 확인하면 끝이다. 그리고는 세션객체를 생성하여 해당 회원정보를 저장하고, 이 세션에 사용자 정보가 담겨있는지 여부를 판단하여 JSP를 이용해 기존..

이전에는 간단하게 로그인, 회원가입, 아이디 비밀번호 찾기 등등 기본적인 웹페이지 화면을 구성하였다. 아무래도 HTML, CSS, JavsScript, JQuery 등등을 사용하면서 좀 완성도 있게 구현해보자 노력했더니 웹 디자인 및 퍼블리싱에도 시간이 상당히 오래 걸렸다. 정확히 말하면 구현하는 데에 많은 시간이 소요된 것이 아니라, 어떤 식으로 꾸밀까... 에 너무 집중한 나머지 여러 웹페이지들의 레이아웃을 참고하면서 나름대로 그림도 그려보고 하다 보니 시간이 오래 걸렸다. 그렇게 해서 어느 정도 웹페이지의 콘셉트를 잡고 난 이후에 본격적으로 웹페이지 구조를 구성하기 시작했다. 전체적인 웹 서비스의 메인, 로그인, 회원가입, 아이디/비밀번호 찾기 화면의 모습이다. 나름대로 웹페이지 레이아웃과 CSS을..

먼저 기본적인 UI를 구성함으로써 앞으로 서블릿과 AJAX를 테스트해볼 수 있도록 할 것이다. 물론 계속해서 화면을 꾸며나가는 과정에서 몇 번이고 수정을 반복해야겠지만, 큰 틀은 변하지 않을 것이다. 기본적으로 메인화면과 로그인화면, 회원가입 화면을 먼저 설계하였다. 앞서 메인화면은 상당히 심플한데, 물론 아직은 정식 서비스를 개시하지 않았기에 내용을 채우지 않아 그런 것이며, 좌측상단에 보면 >>가 담겨있는 빨간색 사각형이 존재하는데, 이를 사각형을 클릭하면... 해당 사이드바는 아직 사용자가 로그인한 상태가 아니기 때문에, 관리자가 아닌 일반 고객과 같은 사이드바 목록을 가지고 있다. 도서, 커뮤니티, 내 정보, 기타 메뉴가 있으며 각각의 상위 메뉴는 하위 메뉴들을 가지고 있다. 상위 메뉴를 클릭하면..

해당 웹 서비스는 풀페이지 플러그인이 제대로 적용 되는지 테스트하고자 개발한 것으로 그에따른 DB를 설계하거나, 직접 질의하여 데이터를 얻는 것이아닌 공공 API를 이용했다. 따라서, 실질적으로는 프론트엔드 개발 프로젝트고, 이미 설계된 API를 호출하여 사용할뿐이다. 당연히 비동기식 AJAX 호출을 사용했다. 실제 사용 예, 현재는 마우스 버블 플러그인(직접 개발)이 적용되어있지 않다. 아래의 링크에서 직접 사용해 볼 수 있다. COVID-19 같이 극복해요! COVID-19 때문에 속이 답답하신가요? COVID-19에 대한 모든 정보 그리고, 지친 마음도 속 시원하게 풀어드립니다. jrw9215.dothome.co.kr 해당 웹 서비스는 직접 제작한 코로나 정보 제공 웹 서비스다. PC는 마우스로, ..

데이터베이스는 여러 의미 있는 값을 지닌 기록들인 데이터를 관련 있게 모아놓은 것을 말한다고 한다. 데이터베이스를 배우기 전까지는 나는 파일의 형태로밖에 데이터를 다루지 못했다. 가령 성적을 입력하면 평점과 이수 학점을 보기좋게 계산해서 DOS창에 일일이 수작업으로 GUI를 구성하여 출력하는 C 프로그램을 제작했던 경험이 있는데, 이 프로그램의 문제는. txt 파일의 형태로 데이터를 기록하다 보니 당연히 띄어쓰기가 잘못되거나, 파일의 경로가 달라지거나, 이름이 같은 사람에 대해서는 서비스를 제공할 수 없다거나... 데이터를 체계적으로 관리할 수 없었다는 것이었다. 때문에 프로그램의 규모가 상당히 작아질 수밖에 없었다. 그러나, 데이터베이스와 DBMS에 대한 공부를 하면서 이제 실전에 적용할 수 있겠다는 ..