


[feat : 부트스트랩 적용]
- 부트스트랩 적용했으나, 페이지 연결이 어려워 부트스트랩 제거. 이후 백엔드 및 기본 html작성을 완료 한 후 부트스트랩 적용 고민하기로 함
[fix : 부트스트랩 제거 후 원상복귀]
[feat :view 분리]
17 kiosk upload- 파일 업로드시에 type선택하고 업로드 하는식으로 변경
- 파일 업로드시에 info List DB까지 반영되도록 하기
22 kiosk update
23 confilct resolve
4 business serch
- 사업자번호/타입으로 serch 기능 만들기
5 info update
docs : todo 반영
타입 추가 api 작성 #32
6 upload type
32 kiosk info create
39 kioskinfo detail
file 덮어쓰기 기능 추가
☑️ 자바 - 특정 디렉토리 경로의 파일 목록 가져오기
url(File).list : String[ ]테스트 사용해보기
- [기존문제] 폴더가 없으면 apk업로드 되지 않는 이슈 해결
☑️ Controller에서 List로 반환
☑️ Postman으로 성능 측정
☑️ dummy용 폴더 1천~1만개 만들기
☑️ KioskInfo Entity, Repository 만들기
☑️ version 목록 불러오는 Api 작성하기
☑️ Postman으로 성능 측정
☑️ dummy용 데이터(행) 1천~1만개 만들기
목록이 3개일때, 1000개일때, 10000개일때 성능을 측정함.
(10만개 부터는 데이터 insert가 너무 오래걸려 생략)

25ms 동안 수행

140ms 소요됨
자바에서 제공되는 io.File을 통한 목록 불러오기는 local에서 바로 수행이 가능하다.
특히 자바의
File은FileSystem의 list를 사용한다. (정확히는WinNTFileSystem)
list()함수의 구조 및 성능을 확인하기 위해 위로 거슬러가보니,native라는 키워드를 사용하고 있었다.
(*native는 자바가 아닌 언어(보통 C나 C++)로 구현한 후 자바에서 사용하려고 할 때 이용하는 키워드이다. 자바로 구현하기 까다로운 것을 다른 언어로 구현해서, 자바에서 사용하기 위한 방법이다. 구현할때 JNI(Java Native Interface)를 사용한다)
출처: https://fors.tistory.com/80
추측이지만, C언어로 파일 목록을 읽어오는 함수를 사용하는 듯 하다.
DB를 외부DB로 올리게 되는 경우 네트워크를 통해 불러오는 비용이 추가로 발생한다. (이렇게 되면 서버의 폴더 목록을 읽어오는 것이 확실히 더 빠를 것이다.)
version을 위한 DB를 추가로 관리하게 되어 삽입, 조회등의 유지 보수 비용이 올라간다.
매번 version폴더를 만들때마다 version Table에 해당 정보를 insert를 추가로 수행하는 비용이 발생한다.
주DB로 사용한 Mysql은 대용량 데이터를 가져올때 속도가 점차 느려지는 것을 확인했다. 이를 보완하기 위해서는 페이징, 인덱싱이 필요하다.
그럼에도 DB에 올렸을 때 이점은?
향후 서버를 분산 서버로 확장하는 경우 폴더 구조를 일치시키는 작업 등이 유용할 것 같다.
파일 IO보다 DB IO 코드가 더 익숙하다
장점 : 앞에서 말한 문제를 해결
단점 : releaseNote.txt를 추가적으로 관리해야함
로그인 후 받은 JsessionId는 이후 다른 인증이 필요한 api를 날릴때 헤더에 넣어 보내는데, 이때 받은 세션id는 어디에 저장되어 있고 언제 쓰이는가? 또, 세션 아이디의 생명 주기는 어떻게 되지?
☑️ 실습 일지 작성
- Git Issue 바탕으로 작성 완료
☑️사업단 과제 완료하기
제품 비교 보고서 완성하기
☑️ [KioskInfo] - 메인 버전 변경 api 작성 (완료)
- Kiosk Info Detail 페이지 작성 완료
- 안드로이드 어플의 APP UPDATE 경로 version 상세 추가
- version변경 시 릴리즈 노트.txt읽어와 페이지 및 kioskInfo DB에 반영
[공부할 것] Spring ThreadPool, Thread Local, authetication
[공부할 것] RESTFULL REST LESS 구분하기
☑️ [KioskInfo] - [(릴리즈노트) 수정하기][버전 번경하기] 분리 (완료)
- 프론트에 [메인 버전 변경하기] 버튼 만들기
- 프론트와 백엔드 연결하기
- info/type 상세 페이지 apk 다운로드 링크 작성하기

이 [메인으로] 버튼 만드는데 한세월 ㅜㅜ..
새로운 문제 상황 :
<a>태그를사용해다운받기를 만들었는데, 상대경로로 html파일보다 상위에 있는 파일은 다운로드가 안되는 문제와 직면함
<select>태그 내에서 버전 선택시 release Note불러오도록 해야함[KioskInfo] - [(릴리즈노트) 수정하기][버전 번경하기] 분리