2020. 12. 22. 21:46ㆍ프로젝트/Salle(살래) 중고거래 웹
단순하게 접근해서일까. 이미지 파일을 저장할 때 실제 파일은 서버가 없는 지금 로컬 폴더에 저장하고 파일명, 파일경로는 DB에 저장해서 불러올때는 파일정보로 전달이 오고간다. 여러 블로그들을 봤는데 코드가 뭐라 쓰여져있는지 모르겠고 읽다보면 나와 다른 방향으로 구현하고 있어서 더이상 읽기 싫은 경지에 도달했다. h2 database version 오류 잡은 것으로 오늘 몫을 다했다고 생각해야겠다. 점심먹기 전에 끝냈었지만...내일은 더 나은 컨디션으로 돌아오자.
요약
-
NEXT TODO - IMG 파일 로컬 폴더에 저장하고 파일 정보는 DB에 저장하기
- 코딩에만 집중할 수 있는 몸과 마음을 만들어오자
TIL
-
Javascript
-
정규표현식으로 천단위 콤마 표현하기: https://mizzo-dev.tistory.com/entry/JavaScript정규식-숫자에-1000단위로-콤마쉼표-구분자-넣기
-
WAS(Web Application Server)
-
Web은 정적 컨텐츠(문서)를 html에 보내는 역할을 하고 WAS에선 동적 컨텐츠를 따로 처리하는 역할까지 분산처리방식으로 가능하게 해준다. WEB이 웹 문서만 처리할 수 있게끔 서버관련 작업을 수행해주는 웹 어플리케이션이다. (파일도 WAS에 저장된다)
진행사항
-
등록일 - date TIMESTAMP(9) WITH TIME ZONE
-
(12/21) Timestamp 객체를 만들어주고 객체 매개변수에 LocalDateTime.now()를 입력한다. 그렇게 되면 ISO-8601(국제 시간데이터 표준)에 맞는 데이터가 반환된다.
-
그 데이터를 가지고 sql문에 넣는데, 넣기 전에 parsedatetime("date", "format") 처리를 해줘야 h2 DB에서 인식할 수 있다.
-
Product 변수에 .jsp에서 받는 데이터를 직접 입력한 뒤, reg_date 컬럼 입력이 잘 작동하는지 알아본다.
-
-
이런식으로 xml파일 내 sql문을 작성했는데 인식에 오류가 없는지 구현해봐야 될듯 → 주소나 상품이미지는 100% 구현된 상태가 아니기 때문에 Junit을 활용한 Test로 시도해보기 → ProductService의 registerProduct 메서드는 돌렸을 때 nullpointerexception이 나와서 문제가 있는 걸 파악했는데 어떻게 발생한 것인지는 모르겠음.
-
parsedatetime 없이 timestamp에 localdatetime.now()를 넣어주는 것만으로 INSERT문이 정상적으로 실행되는 것 같았다.
-
-
-
상품이미지 - imgPath VARCHAR(500) *VARCHAR2와 차이는 없지만 추후 oracle에서 VARCHAR는 다른 용도로 쓸 수 있다고 한 적이 있기 때문에 2 사용을 권장
-
DB에 주소값만 저장하고 실제 이미지는 Server에 저장하는 방식이 보편적임
-
내 건 로컬서버를 이용한 Demo 프로젝트라서 등록된 이미지 파일은 로컬폴더로 저장
-
(12/22) 보통 DB에 이미지를 넣진 않는다. 스토리지 용량을 많이 차지하기 때문이다. 중복없이 주소값만 필드에 넣고, WAS에 저장한다. 위에 적은 것처럼 난 서버가 없기 때문에 로컬폴더에 저장시켜준다.
이슈
-
h2 dependency 버전 변동으로 인해 spring이 인식하지 못하는 오류 발생 → DB를 삭제하고 다시 파야된다고 함
-
maven install을 하면 The requested profile "pom.xml" could not be activated because it does not exist 에러가 뜸. run configuration에 들어가서 pox.xml을 지우면 된다고 한다.
-
H2 버그로 의심됨
-
h2-1.4.196 으로 DB를 접근 후 h2-1.4.200으로 다시 접근 시 오류가 발생
-
h2-1.4.200 으로 열기전에 h2-1.4.199로 열면 오류가 발생하지 않음.
-
application.properties에서 datasource.driver.class 경로를 지우고 실행시켜보니 작동했음 → 하지만 h2 오류는 여전히 남아있다.
-
datasource.lclasspath를 application.properties에서 새로 만든 경로로 설정해주고 project를 clean해줬더니 된다!ㅠㅠ 즉 DB를 다시 팠더니, 해결됐다.
-
원인: h2 version이 1.4.200 기준인데 pom에서 다른 버전으로 변경하면 오류가 뜨는 것 같다. 다시 원래 버전으로 되돌려도 그대로 남아있다. properties → build path 설정에서 h2.jar를 수정해줘도 해결되지 않는다. stackoverflow에서 이럴 경우 DB를 엎고 다시하는 방법밖에 없다고 한 것이 맞았다. 다행히 구현과정에서 벌어진 에러라 DB를 갈아엎어도 피해가 없었다. DDL로 CREATE만 해주면 될뿐.
-
sell.jsp 화면 submit 해도 post mapping 후 다음화면으로 넘어가지 않음
-
form이 한 파일에 2개 있었다... 주소검색 API에 들어가있던 form이 문제였다. 지우고 나니 해결됨
-
sellproduct 상품등록하기 클릭 시 sellproductController 오류
-
Member 세션에서 email 받아오는 과정의 오류 → session의 Webconfigpath가 /login/** 까지만 연결돼있었다. 모든 페이지에 들어갈 때마다 session은 유지되어야하기 때문에 /**로 고쳐줬다. 해결완료!
-
pr_img 데이터 인식오류
-
으아 img 서버에 어떻게 저장하냐 너무 복잡해...to be continued
'프로젝트 > Salle(살래) 중고거래 웹' 카테고리의 다른 글
[Salle] 중간점검 - 프로젝트 기한 세우기 (0) | 2020.12.28 |
---|---|
[Salle] 4. 판매하기 페이지 (5) - 1차 완성 (0) | 2020.12.23 |
[Salle] 4. 판매하기 페이지 (3) - DB 연동(Junit) (0) | 2020.12.22 |
[Salle] 4. 판매하기 페이지 (3) 이미지 첨부파일 여러개 업로드 (0) | 2020.12.18 |
[Salle] 4. 판매하기 페이지 (2) - 거래지역(행안부 팝업주소 API) (0) | 2020.12.18 |