
💡저번 주차 [공부 목록] 기록, 공부하기
💡서버 호스팅
💡js, jsp 공부 & 적용하기
💡포트폴리오 완성하기(시스템 구조도 빼고)
☑️ 서버 호스팅 하기
✖️[스터디] 프로세스와 스레드 공부하기
✖️[공부할 것] Spring ThreadPool, Thread Local

아침 10시부터 퇴근 20분 전까지 매달리다 결국..!! 😂👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏
너무 행복한데 결국 문제가 뭐였는지도 모르겠고 왜 성공한 건지도 모르겠다.. ! (ㅠㅠ)
악마의 카페24.. 정말 호스팅이 힘들었다.
내일은 카페24 호스팅 하는 방법을 정리해서 올려보려고 한다. 💦
OutofMemory :.. 문제때문에 카페24 사양 한번 업그레이드 하고..java.lang.classcastexception 관련 경고가 뜨고, (심지어 아직도 떠있지만)spring.thymeleaf.prefix=/WEB-INF/classes/templates/ 을 고쳤더니..? 갑자기 도메인이 떴다..어쨌든, 오늘은 업무 끝끝!!!
조금도 못쉬고 달렸더니.. 너무 지쳤다
☑️ 수강꾸러미 담기
☑️ Kisok_Info 웹으로 post 하기
☑️ 파일 경로 문제 고치기
☑️[스터디] 프로세스와 스레드 공부하기
☑️[공부할 것] Spring ThreadPool,Thread Local
✖️[문서화] 카페24 호스팅 방법 글쓰기
☑️ Git submodule로 application 공유하기

왜 자꾸 글자가 깨지는 거니..

이럴땐 메모장에서 열기>확장자 "모든 파일"선택으로 열면 된다
출처 - SQL 파일 한글 깨짐 해결

현재 작성한 프로젝트에서 상대경로를 2번 사용한다.
1. 파일 업로드시 ...apk/KioskType/version 아래에 업로드
2. KioskType 상세 조회시 apk/KioskType/..의 폴더 목록 불러오기
때문에 서버에 올린 후 FileZilla를 사용해 파일 목록을 보면, 어디에도 apk를 찾을 수 없다..

이 부분을 해결하는 것이 오늘의 과제이다 😥

밑줄친 부분이 전체 경로인듯
logging으로 해보니 파일이 정상적으로 업로드 되는데 그냥 FileZilla 반영이 안되는건가..? 싶기도 하네..
지금 되는 것 : apk/kioskType/version 폴더 생성하기, 파일 목록 불러오기
안되는 것 : apk/kioskType/version내의 app.apk, releaseNote.txt를 FileZilla로 확인하기

찾았다 이놈
알고보니 apk의 절대주소가 tomcat/bin이었는데 이걸 제대로 안읽어서 생긴 문제였다 💦
지금 되는 것 : apk/kioskType/version 폴더 생성하기, 파일 목록 불러오기, apk/kioskType/version내의 app.apk, releaseNote.txt를 FileZilla로 확인하기
안되는 것 : KioskInfo로 KioskType/폴더 생성 시 apk{kioskType} 이름으로 된 폴더가 생기는 것. 원래는 apk 하위폴더로 생겨야함 근데 이건 \ 대신 / 써주면 해결될듯?
이것도 폴더명 삭제하고 웹으로 다시
POST API날려 해결완료!

현재 프로젝트도 private라 application.properties를 그대로 올려도 상관은 없지만, 그래도 사용방법을 익힐겸 git submodules 적용 완료! && 관련 문서 readme로 작성 완료
☑️ 이력서, PPT 마저 꾸미고 Dev 제출하기
☑️ ICT 현장실습 인턴 요강 읽기
☑️ 현장실습 일자 변경하기
☑️ /latest_apk_info, /download_apk 버전 추가하기
☑️ front[Kiosk Info, Upload] : 자바스크립트 적용하기
☑️ 자바스크립트 인강 듣기

redirect: 를 url로 사용했는데 이 방식에 문제가 있었음....리다이렉션시 원래의 요청은 종료되고 새로운 HTTP GET 요청이 시작된다. 원본 요청에서 전달되던 모든 모델 데이터는 요청과 함께 소멸된다. 새로운 요청은 애트리뷰트에 어떠한 모델 데이터도 없는 상태가 되어 자체적으로 이를 찾아내야한다.
(출처 : https://m.blog.naver.com/kimnx9006/220626250588)
redirect:를 사용하는 대신, GET API 매핑함수인 viewUpload()를 직접 호출하여 script로직을 추가한 model을 파라미터로 넘겨주었음. 해결!👏👏[공부할 것]
https://jinyeanseok.tistory.com/60 ,
https://velog.io/@bongf/learned-redirect-forward링크 읽고, 새로고침 시 팝업 변수 등록할 수 있는지 살펴보기
Bean 용량 줄이기 위한 view 제거
error상황 발생시 팝업창 띄우고 새로고침 기능 작성
파일 함수 분리

실제 apk 사이즈인 50MB, 10MB크기의 파일을 업로드 했을때
org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException...
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:122) ~[spring-web-5.3.19.jar:5.3.19-migrated-1.0.0]
SizeLimitExceededException를 만났다.

(같이 실습하는 동료분이 알려주신 챗지피티 활용법 .. 👍)

시도1 : Server.xml 에 추가 옵션 넣기 - 실패

카페24에 올린 서버를 FileZilla로 접속하여, bin/conf/server.xml 을 다운받은 뒤 이미지와 같이 수정해서 다시 올려주었다.
<Connector port="8667" protocol="HTTP/1.1" maxPostSize="104857600"
connectionTimeout="20000" />
//maxPostSize="104857600" 추가하기
(출처 : https://developer111.tistory.com/51)
시도2 : application.properties에 추가 설정 넣어주기
# apk size setting
spring.servlet.multipart.maxFileSize=100MB
spring.servlet.multipart.maxRequestSize=100MB
application.properties는 spring에서 파일 업로드 용량을 설정하고, 실제 서버는 cafe24에서 server.xml로 관리하는 것이 아닌가? 했지만 다행이 이 방법이 적용이 되었다.
(출처 : https://velog.io/@park2348190/MultipartProperties%EC%9D%98-max-file-size-max-request-size%EC%9D%98-%EC%B0%A8%EC%9D%B4)

완료!
☑️ front : 자바스크립트 적용하기 (2개)
🔺 코틀린 인강 다 듣기(3시간)
✖️ 금요일까지 완성해야하는 보고서 작성
☑️ 프론트 얼추 완성&코드리뷰 준비-> 월까지

스크립트 적용은 정말 어렵다..
그냥 코드 더러워지더라도 타임리프를 쓰는게 훨씬 단순한 것 같다.

버전을 선택하지 않았을 때 발생하는 폴더생성/release.txt 찾기 문제 해결 완료!
file 라이브러리의 FileReader 등에서 경로를 못찾는 경우에도 에러처리 해야겠다! #TODO-> 완료
파일 경로가 없으면 새로 만들기 때문에 유효성 검사가 필요하지 않습니다.
기존의 getApkPath() 함수를 재사용 가능합니다.


너무 수정하니까 회고록 쓰기도 귀찮아서 오늘은 이미지로 대체...ㅋㅋㅋ
이슈라도 잘 써놓아서 다행이다 😂
☑️ 포인트 조사보고서 보완하기
~~ 키오스크 연동여부 (카페가서 물어보기..)~~
☑️ 유튜브 링크 같이 달기
☑️ 프론트 완성하기


오늘은..바빠서 못쓰고...이런 일을 했다 😂😂