[현장실습] 2주차 기록

오영선·2024년 1월 22일

실습

목록 보기
3/12

이번주의 목표

💡저번 주차 [공부 목록] 기록, 공부하기
💡서버 호스팅
💡js, jsp 공부 & 적용하기
💡포트폴리오 완성하기(시스템 구조도 빼고)

1일차 : 2024-01-22 월

상세

☑️ 서버 호스팅 하기
✖️[스터디] 프로세스와 스레드 공부하기
✖️[공부할 것] Spring ThreadPool, Thread Local

서버 호스팅 하기

아침 10시부터 퇴근 20분 전까지 매달리다 결국..!! 😂👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏👏
너무 행복한데 결국 문제가 뭐였는지도 모르겠고 왜 성공한 건지도 모르겠다.. ! (ㅠㅠ)
악마의 카페24.. 정말 호스팅이 힘들었다.
내일은 카페24 호스팅 하는 방법을 정리해서 올려보려고 한다. 💦

  1. 톰캣이 10.x부터 호스팅방식이 달라졌다 (이거 때문에 일단 4시간 날림)
    https://velog.io/@easthyun/war%ED%8C%8C%EC%9D%BC-tomcat10%EC%97%90-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0
  2. OutofMemory :.. 문제때문에 카페24 사양 한번 업그레이드 하고..
  3. java.lang.classcastexception 관련 경고가 뜨고, (심지어 아직도 떠있지만)
  4. 최종적으로는 타임리프 관련 설정 spring.thymeleaf.prefix=/WEB-INF/classes/templates/ 을 고쳤더니..? 갑자기 도메인이 떴다..
    ❓❓❓

어쨌든, 오늘은 업무 끝끝!!!
조금도 못쉬고 달렸더니.. 너무 지쳤다

2일차 : 2024-01-23 화

상세

☑️ 수강꾸러미 담기
☑️ Kisok_Info 웹으로 post 하기
☑️ 파일 경로 문제 고치기
☑️[스터디] 프로세스와 스레드 공부하기
☑️[공부할 것] Spring ThreadPool, Thread Local
✖️[문서화] 카페24 호스팅 방법 글쓰기
☑️ Git submodule로 application 공유하기

Kisok_Info 웹으로 post 하기


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

이럴땐 메모장에서 열기>확장자 "모든 파일"선택으로 열면 된다
출처 - 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 날려 해결완료!

Git submodule로 application 공유하기


현재 프로젝트도 private라 application.properties를 그대로 올려도 상관은 없지만, 그래도 사용방법을 익힐겸 git submodules 적용 완료! && 관련 문서 readme로 작성 완료

3일차 : 2024-01-24 수

상세

☑️ 이력서, PPT 마저 꾸미고 Dev 제출하기
☑️ ICT 현장실습 인턴 요강 읽기
☑️ 현장실습 일자 변경하기
☑️ /latest_apk_info, /download_apk 버전 추가하기
☑️ front[Kiosk Info, Upload] : 자바스크립트 적용하기
☑️ 자바스크립트 인강 듣기

현장실습 관련 서류..쓰기

  • 아니 얼탱
    15일 부터 시작인데 현장실습페이지에 05일부터 라고 되어있다고..?
    나도모르게 7주차 짜리 실습을 하고 있었다ㅏ...
    근데 서류를 이거내랬다가 저거내랬다가 내가 싸인한거니까 나한테 서치도 떠넘기는거!!! 얼탱
    하여튼 해결

front[Kiosk Info, Upload] : 자바스크립트 적용하기

  1. scripts 적용시 한글 깨지는 문제 해결
    (알고보니 controller에서 넘기는 과정에서 이미 깨져있었음)
  2. scripts에 model에 addAttribute 반영사항이 적용이 안되는 문제 해결
    원래페이지로 새로고침 하기위해 redirect: 를 url로 사용했는데 이 방식에 문제가 있었음.
    즉, GET API로 다시 매핑되어 scripts를 추가한 로직이 반영이 안되었던 것..

    ...리다이렉션시 원래의 요청은 종료되고 새로운 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 제거

  • KioskInfo View
  • KioskUpload View

error상황 발생시 팝업창 띄우고 새로고침 기능 작성

  • Kiosk Upload
  • Kiosk Info

파일 함수 분리

  • FileUtils -> FileIOUtils 이름 변경
  • 폴더 생성, txt 읽어오는 기능 함수 분리

/latest_apk_info, /download_apk 버전 추가하기

  • 기존 작성 코드(다른사람의)를 현재 작성코드에 맞춰 변경하기
    기존에는 json파일, csv파일을 읽어와 사업자 정보를 조회했는데, 현재 이 과정을 db로 옮기며 해당 부분이 필요없어졌다. 그러나 apk를 다운로드 하는 api는 이 기존함수를 그대로 사용하고 있어, 변경이 필요했다.
  1. 다운로드 경로에 version 반영 안됨
    -> FileIOUtils분리하며 해결
  2. KioskInfo 읽어오는데 json 사용
    -> DB 사용하도록 수정

    해결 완료! 이제 서버에 재배포시 apk를 다운로드할 수 있을 것이다.

새로운 이슈 - 파일 업로드시 크기 문제

실제 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)

자바스크립트 인강 듣기


완료!

4일차 : 2024-01-25 목

상세

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

front : 자바스크립트 적용하기


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

버전을 선택하지 않았을 때 발생하는 폴더생성/release.txt 찾기 문제 해결 완료!

file 라이브러리의 FileReader 등에서 경로를 못찾는 경우에도 에러처리 해야겠다! #TODO-> 완료

upload APK api :

파일 경로가 없으면 새로 만들기 때문에 유효성 검사가 필요하지 않습니다.
기존의 getApkPath() 함수를 재사용 가능합니다.

front : Apk upload, Kiosk Info&예외처리

  • Kiosk info 등록 중복체크
  • Kiosk info 등록 실패시 pop-up
  • Kiosk info Detail 버전 변경 실패시 pop-up

front 추가 요구사항 반영


너무 수정하니까 회고록 쓰기도 귀찮아서 오늘은 이미지로 대체...ㅋㅋㅋ
이슈라도 잘 써놓아서 다행이다 😂

회의

  • 에러 핸들링에 대해
    무조건 예외를 터트리고 try-catch로 잡는게 좋을까 vs
    잡을 수 있는 에러를 미리 검사해서 안나게 하는게 좋을까

5일차 : 2024-01-23 금

까지

☑️ 포인트 조사보고서 보완하기
~~ 키오스크 연동여부 (카페가서 물어보기..)~~
☑️ 유튜브 링크 같이 달기

  • 소스코드 리뷰 준비하기(1시간 분량)....

☑️ 프론트 완성하기

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

0개의 댓글