본문 바로가기

Programming

(136)
[게시판] 게시글 작성 1. 게시글 작성 폼: write_form.php 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 31 32 33 34 35 36 37 38 39 40 글 쓰기
[게시판] 회원가입 1. 회원가입 폼: signUp_form.php 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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 Sign up ID (4~14) Password (8~16) Password confirm Name(K: 2~8, E: 2~16) Colored by Color Scripter cs 11행: 회원가입 정보 역시 로그인과 마찬가지로 URL에 노출되어선 안 되고, 서버의 데이터베이스에 추가되는 내용이므로 POST 방식으로 전송한다. 28행: 이름이 너무 길다. name="pw_confirm" 정도로 할 걸 그랬다. 2. 회원가입: s..
[게시판] DB 연결, 로그인 세션 설정 + 로그인 1. DB 연결: connectDB.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Colored by Color Scripter cs 4~7행: 호스트 주소, 사용자의 ID, PW, 데이터베이스의 이름을 설정하고 9행: 그 값으로 PHP에서 MySQL 객체를 생성한다. 2. 로그인 세션 설정: session.php 1 2 3 4 5 6 Colored by Color Scripter cs 2행: 세션을 초기화하는 함수. 세션을 사용하려면 먼저 세션을 초기화해야 한다. 4행: 만약 세션 값이 설정되어 있지 않다면(로그인 상태가 아니라면) 로그인 페이지로 이동하고, 5행: 그렇지 않다면 id에 세션 값을 저장한다. 3. 로그인 폼: login_form.php 내가 만든 웹 페이지는 기본적으..
[게시판] 데이터베이스 설계 작년에 동아리 활동을 하면서 만든 게시판인데, 당시 일련의 사건을 겪게 되면서 '일단 구현이라도 하자'는 생각으로 만들다 보니 DB 설계와 코드가 좀 조악하다. 때문에 포스팅 하기가 부끄러워서 계속 미뤘는데, 아예 가져다 쓰는 것은 무리일지라도 처음 게시판을 만들어 보는 분들이 참고할 정도는 되지 않을까 싶어 일단 써두기로 했다. 사실 친구의 도움이 없었으면 이 조악한 게시판조차 못 만들었다. 방에서 재워주며 도와준 대학 동기 이 모 군에게 진심으로 (이미 소고기로 전했지만) 감사의 말을 전한다. Shout out to Lee! 사용자, 게시글, 댓글의 총 세 개의 테이블이 필요하다고 생각했다. 각 테이블은 다음과 같이 설계했다. 1. 사용자: user CREATE TABLE user ( seq INT ..
GET 방식과 POST 방식의 차이 HTTP 메소드인 GET과 POST는 데이터를 전달한다는 점은 같다.중요한 건 언제 GET 방식을 쓰고 언제 POST 방식을 쓰냐는 것이다. 전달할 데이터의 길이가 길 때는 대체로 POST 방식을 쓰지만, 그렇지 않을 때는 고민이 필요하다.물론 경우에 따라 데이터의 길이가 길어도 GET을 써야 할 경우도 있을 것이(지만 나는 그런 경우가 있는지 모르겠)다. 기본적으로 이름에 따라 그 의미를 생각하면 된다. GET은 가져온다는 의미를 포함하고, POST는 보낸다는 의미를 포함한다. 즉 GET 방식은 서버에 값을 전달해 데이터를 가져오고, POST 방식은 서버에 값을 전달해 서버의 정보를 수정한다고 볼 수 있다. SQL 문으로 보면 (다소 억지스럽지만) GET은 SELECT 문, POST는 UPDATE 문에..
사용자 정의 예외 게임 프로그램에서 상점에서 아이템을 구매할 때 아이템의 금액보다 사용자의 보유액이 적은 경우 예외를 발생시킬 필요가 있다. 그런데 이런 예외는 자바에서 제공하지 않는다. 어떻게 해야 할까? 이런 예외를 애플리케이션 예외(Application exception)이라 한다. 애플리케이션 예외는 사용자가 직접 정의해야 하므로 사용자 정의 예외라고도 한다. 사용자 정의 예외는 일반 예외로 선언할 수도 있고 실행 예외로 선언할 수도 있다. 전자의 경우 Exception 클래스를, 후자의 경우 RuntimeException 클래스를 상속하면 된다. 이 때 사용자 정의 예외 클래스의 이름은 다음과 같이 Exception으로 끝나는 게 좋다. public class XXXException extends Exceptio..
예외 처리 오류에는 여러 가지가 있는데, 자바에서의 오류에는 크게 에러(error)와 예외(exception)가 있다. 에러는 응용프로그램 실행 시 하드웨어의 문제로 인해 발생하는 오류로, JVM 실행에 문제가 생겼다는 것을 의미한다. 자바 프로그램은 JVM 위에서 실행되기 때문에 프로그램을 아무리 잘 만들었어도 실행 불능이 되고, 개발자는 이에 대처할 방법이 없다. 예외는 사용자의 잘못된 조작이나 개발자의 실수로 인해 발생하는 오류를 말한다. 일단 발생하면 프로그램이 바로 종료된다는 점에서는 에러와 같지만, 예외는 예외 처리(exception handling)를 통해 실행 상태를 유지할 수 있다는 점에서 다르다. 예외는 다시 일반 예외(exception)과 실행 예외(runtime exception)로 나뉜다. ..
[과제] 수강신청 프로그램 친구의 부탁으로 도와준 프로젝트....였는데 하다 보니 내가 거의 다 하게 됐다. 자바를 이번에 처음 배우는 친구들이라 내 코드를 이해하지 못 하는 바람에 내가 다 맡았다. 나도 대단한 걸 한 건 아닌데... 점수를 잘 받게 해주려고 예외 처리도 넣고, 인터페이스도 쓰고 추상 클래스도 쓰고 다양한 요소들을 (억지로) 넣으려고 하다 보니 시간이 너무 촉박해져서 급하게 마무리지었다. 그래서 버그도 좀 있고 구현하려다 못 한 기능도 있고, 애초에 코드 자체가 굉장히 조악한 것 같다.  모든 소스 코드는 아래에 첨부한다.