220922_학습일기_회원가입페이지만들기

Jay·2022년 9월 24일
1

Diary

목록 보기
1/4
post-thumbnail

최근에 회원가입 페이지를 만들어서 그 회원정보를 DB에 저장하는 방법들과 그 동작 순서와 원리들을 MVC 패턴을 통해서 학습하고 있다.

- HTML 문서로 회원가입 페이지를 만들고(member.html)
- jsp(memberInsert.jsp)를 이용해서 html문서에서 입력한 회원정보 데이터를 DB Column에 맞게끔 다듬어서
- VO 클래스에 옮겨담는 과정을 거친 후(MemberVO.java)
- Service인터페이스(MemberService.java -> MemberServiceIm.java 로 구현된)의 함수를 사용해서
- DAO 인터페이스까지 연결해 준 후 DAO인터페이스의 함수를(MemberDAO.java -> MemberDAOImpl.java로 구현된) 통해서
- DBMS로 가기 위한 연결정보(Connection.java 에 코드로 입력해둔 URL,IP,PORT,SID 정보)를 가져와서 MS의 DB에 도달했다.
- 그 후 INSERT와 관련된 쿼리문을 작성해야 되는데, 
- 식별과 관리가 편하도록 미리 만들어둔 QuerySql클래스(MemberQuerySql.java)의 함수를 사용해서
- DAOImp 내에서 이러한 쿼리들을 문자열 형태로 반환 받아서 
- PreparedStatement 클래스(PreparedStatement.java)를 사용해서 INSERT 쿼리문을 입력,
- DB 안의 TableSpace 내에 있는 해당 Table의 칼럼 인덱스에 매칭되는 회원정보를 저장해주었다.

이때 DBMS 에 접근하여 쿼리문을 작성하고 데이터를 저장할 수 있었던 것은
ojbdc6.jar 에 내장되어 있던
Connection, PreparedStatement를 사용할 수 있었기 때문이다.
이런점들이 객체 지향의 장점이 아닐까 생각했다.

그 후 저장했던 데이터의 정보 전체를 가져와서 확인 및 수정 하기 위해서 
새로운 jsp 파일(memberSelectAll.jsp)을 만들었고, 
정확한 데이터 정보와 형식을 가져올 수 있도록 코딩하는 작업을 거쳤다.

그 코딩 중 가장 많이 생겼던 실수가 "오타"였는데, 오타로 인해서 생긴 문제점은 정말 찾아내기가 어려웠다.
가장 좋은 방법은 실수와 오타가 없게끔 하는 것이겠지만, 이건 주의를 기울여서 조심을 해야되는 부분이었다.

처음에는 오타라는 생각을 하지 못했고, 어떤 부분들이 빠져있는지 알 수 없어서, 
클래스와 함수, 쿼리문 등을 좀 더 자세하게 들여다보면서 이어지는 연결점들을 통해서 문제점을 찾아보려고 했다.
하나하나 코드를 다 읽어가면서 문제점을 찾으려고 하다보니 코딩을 작성했던 시간만큼 많은 시간이 소요되었지만, 
그만큼 다시 한번 리뷰할 수 있는 계기가 되었기 때문에 학습하는 입장에서는 의미있었다고 생각한다.
하지만 실제로 현장에 가서 문제가 생길때마다 이렇게 많은 시간들을 소요하면서 원인을 찾아내지 못하게 된다면, 
좀 아찔하지 않을까.

이러한 경험을 통해서 console에 log를 찍어두고 하나하나 살펴보는 과정들이 
얼마나 중요한 일인지 깨닫게 되는 계기가 되었다. 
또한 그 log들을 통해서 내가 원하는 데이터가 제대로 전달되었는지 확인하는 과정이 필요하다.
실제로, 발생하는 오류가 어디에서 발생했는지 찾는 것이 너무 어려워서, 
함수 시작점과 끝점에 로그를 하나하나 다 새겨보았더니, 어떤 문제가 있었는지까지는 바로 알 수 없었지만,
적어도 어느 지점쯤에서 문제가 발생했는지 정도까지는 빠르게 찾아낼 수 있었다.

잘 만들어서 문제없이 서비스를 제공하는 것도 굉장한 일이겠지만, 
반대로 문제 없이 제공되고 있던 서비스들이 성장을 이어나가고 그러한 과정에서 
기존에는 없었던 문제점들이 생긴다면(아직은 어떤 문제점들이 생길지까지는 모르겠다)
최대한 신속하게 문제점을 발견하는 것도 중요하고, 
그걸 해결해나가는 과정 또한 정말 중요하겠다는 생각을 하게 되었다.

그래서일까 선생님께 항상 하시던 말씀이 
"지금 당장 문제가 없는 코드보다 문제가 있는 학생의 코드에서 더 많은 것을 배울 수 있다"
라고 하셨나보다.

문제가 생겼을 때, 어떤 문제점들이 생겼는지를 고민해보고 이를 해결하는 과정들은 학생 혹은 개발자에게 꼭 과정인 것 같다.
서비스를 만드는 과정 자체도 중요하고 어렵겠지만, 
문제점을 찾아서 하나하나 해결해가면서 이를 풀어가는 과정들이 병행된다면 
그 코드들에 대한 좀 더 정확한 이해를 통해서 더 개선되고 나은 서비스를 제공할 수 있게되지 않을까?
물론 아직은 당연하게도 혼자서 코드를 치고 서비스를 내놓을 수 있을만큼의 학습과 숙련도가 이루어지진 않았다.
(22년7월28일이 첫 수업이었으니, 몇일이 지나면 2달이 꽉 채워진다. 시간 정말 빠르게 지나간다.)

그래도 주어진 문제들이 있고, 혹은 해야될 과제가 있다면, 
이를 해결하거나 완수해나가는 과정들과 이를 통해 학습하고 성장하는 과정들이 너무나도 재밌어서 다행이다.

학원에 처음 갔을때 담당 과장님께서 "7개월을 7년 같이 보내자" 이런 말씀을 하시기도 하셨고,
선생님께서는 "오늘의 내가 어제의 나보다 성장했다는걸 느낄 수 있다면 된다"라고도 하셨는데,

개발자로서 살아가면서 이 두 가지는 항상 마음에 품고 실천하려고 한다.
profile
안녕하세요! 개발을 배우기 시작한 학생의 학습공간입니다.

0개의 댓글