분류 전체보기
-
[Java] SpringBoot 프로젝트 : 프로필 사진 기능 구현(3) - 추상 클래스(AbstractView, Tiles, Base64)프로젝트/기능 정리 2023. 6. 10. 16:45
목적 회원제 웹사이트 개발시 거의 필수적으로 사용되는 프로필 사진 등록 및 수정 기능 구현 프로필 이미지 등록 관련 DB, Java, JS 처리 총 정리 일부 받아서 쓴 코드 리뷰 지난 글에선 jsp가 컨트롤러에 이미지를 요청하면, 컨트롤러에서 기본이미지 또는 DB에서 꺼낸 이미지를 바이트 배열로 변환하여 모델에 저장하는 과정까지 살펴봤다. 이번 글에서는 컨트롤러가 마지막에 리턴하는 AbstractView인 imageView 클래스를 살펴보자. 데이터 흐름도는 다음과 같다. [데이터 흐름도] 상기를 위해 컨트롤러의 photoView.do로 매핑된 부분의 코드를 다시 보자. [Controller - photoView] @RequestMapping("/mypage/photoView.do") public St..
-
[Java] SpringBoot 프로젝트 : 프로필 사진 기능 구현(2) - 이미지 불러오기(Oracle DB, BLOB, MyBatis)프로젝트/기능 정리 2023. 6. 9. 21:48
목적 회원제 웹사이트 개발시 거의 필수적으로 사용되는 프로필 사진 등록 및 수정 기능 구현 프로필 이미지 등록 관련 DB, Java, JS 처리 총 정리 일부 받아서 쓴 코드 리뷰 지난 글에 이어서 이번에는 회원이 등록한 이미지가 있을 때 DB에서 어떻게 꺼내오는지 살펴보자. 데이터 흐름도는 다음과 같다. [데이터 흐름도] 지난 글에서 jsp가 MypageController에 요청을 보냈을 때 일어나는 처리까지 살펴봤다. 이제 회원이 등록해둔 프로필 이미지가 있는 경우 DB에서 불러오는 과정을 보자. [Controller - photoView] @RequestMapping("/mypage/photoView.do") public String getProfile(HttpSession session, Http..
-
[Java] SpringBoot 프로젝트 : 프로필 사진 기능 구현(1) - 이미지 byte[] 처리(FileInputStream, ByteArrayOutputStream)프로젝트/기능 정리 2023. 6. 8. 14:34
목적 회원제 웹사이트 개발시 거의 필수적으로 사용되는 프로필 사진 등록 및 수정 기능 구현 프로필 이미지 등록관련 DB, Java, JS 처리 총 정리 일부 받아서 쓴 코드 리뷰 진행했던 프로젝트들의 코드를 다시 보며 시간을 들였던 기능들을 정리하고 있는데, 생각보다 이미지 처리하는 부분들이 어렵게 느껴졌다(기초가 없으니까..). 파일 처리나 이미지 처리 등을 담당해주는 코드를 받아서 적용만 했던터라 세부 내용에 대해 깊이 탐색해보지 않았던 것도 큰 요인으로 생각된다. 지금이라도 좀 더 자세히 기록을 남겨두기 위해 프로필 이미지 처리 관련 작업들을 몇 부분으로 나눠 작성해보겠다. [데이터 흐름도] 우선 큰 틀에서 어떤 과정을 거쳐 데이터가 변환되고 흘러가는지 그려보면 다음과 같다. 간략히 설명하자면, 마..
-
[Github/Eclipse] SpringBoot 프로젝트 : 이클립스 프로젝트 깃허브 연결 / SpringBoot 환경설정 / 환경변수 설정(DB, API KEY 등)프로젝트/설정 등 2023. 6. 7. 15:31
목적 SpringBoot로 팀 프로젝트 진행 시 했던 깃허브 연결 방법 정리 깃 repository 생성부터 SpringBoot 기본 설정 등 정리 [Github - Repository 생성] 우선 깃허브 로그인을 한다. 없으면 가입하기 좌측 상단에 보면 위와 같이 New 버튼이 있다. 클릭 이런 화면으로 이동이 된다. 각 번호별 설명을 하자면 다음과 같다. repository 이름 설정 : 원하는 이름으로 설정하면 됨. 공개여부 : repo 공개여부로, 초대된 회원과 본인만 볼 수 있음(private) OR 모두공개(public) 깃 동기화 시 무시할 파일 지정 : 이건 굳이 코드 업로드 할 때 같이 올라갈 필요 없는 파일이나 폴더 등을 설정 가능한데, none으로 두고 따로 설정해도 되고 주로 사용하..
-
[Java, JS] SpringBoot 프로젝트 : 잔여시간 계산 및 차감 Ajax 처리프로젝트/기능 정리 2023. 6. 6. 19:14
목표 시간권 구매 회원이 좌석 입실 시 실시간 잔여시간 차감 기능 구현 setInterval 사용하지 않아야 함. 페이지 이동 간 시간 계산이 지속적으로 이루어져야 함. 페이지 이동, 새로고침 등에 의해 시간 누수가 발생하지 않아야 함. [기본 로직] 모든 페이지에서 지속적으로 시간 계산이 이루어져야 하므로, 모든 페이지에 따라다니는 메뉴바에 JS파일 링크 JS세션에 입실했을 때 시간을 저장 JS의 Date 객체를 통해 현재 시간을 구함. 입실시간 - 현재시간 결과가 60이 되면, 즉 60초가 지나면 DB와 화면을 업데이트하는 function을 만들어 실행 퇴실 시 세션에 저장된 입실시간 제거 [문제점] JS는 유니티 update함수처럼 프레임마다 실행시켜주지 않아서 실시간 처리가 불가능→setInter..
-
외부에서 로컬 개발 프로젝트 접근하기프로젝트/설정 등 2023. 6. 6. 15:03
목적 로컬에서 개발중인 내 프로젝트가 외부에서 접속했을 때 정상 작동하는지 확인하고자 함. 일부 사용자들에게 현재 로컬에서 진행중인 서버에 접속하게 하고 싶음. 등의 이유로 외부에서 로컬 프로젝트에 접근하고자 할 때 다음 방법이 도움이 될 수 있다. 이것도 외부에서 오라클DB 접근할 때와 같이 포트포워딩을 해주면 된다. [IP 확인] 명령프롬프트(검색창에 cmd)를 실행한 후 ipconfig 입력 위 테두리 된 부분을 적어두자. 먼저 작업중인 페이지를 실행시켜 주소창을 보면 다음과 같을 것이다. 앞에 localhost 대신 명령프롬프트에서 알아낸 [IPv4 주소:8080] 이런식으로 작성해도 접속이 된다. 같은 공유기를 사용하고 있다면 스마트폰이나 다른 노트북 등으로도 접근이 가능하다. 하지만, 데이터를..
-
[Oracle] 외부에서 로컬DB 접속하기프로젝트/설정 등 2023. 6. 5. 22:55
목적 팀 프로젝트를 위한 공용DB 필요 두 대 이상의 PC에서 작업하여 각 PC별 로컬DB 설치가 번거로움 PC에 DB를 생성해두고 외부에서 노트북으로 PC내 DB에 접근하고 싶음 등의 이유로 특정 PC에 생성해둔 DB로 외부에서 접근하고 싶을 때 다음과 같은 절차를 이용하면 도움이 될 수 있다. 당연하게도 로컬이 되는 PC(DB가 있는 PC)가 켜져있을 때만 DB관련 작업이 가능하다. ※ DB에 직접적으로 접근하는 방법임, DB 연결 관련은 DB_LINK를 키워드로 검색해보자. ※ 기타 보안 문제는 잘 모름 + 필수적이지 않은 설정도 있을 수 있음. [로컬이 되는 PC - 파일 설정] 위 경로로 이동하면 listener.ora와 tnsnames.ora 파일이 있다. 경로는 pc마다 다를 수 있다(로컬디..
-
[Java] SpringBoot 프로젝트 : LocalDate 활용 일주일 누적 시간 구하기프로젝트/기능 정리 2023. 6. 5. 15:55
구현하고자 했던 기능 정의 로그인 한 회원의 마이페이지에 해당 회원의 주간 공부시간을 일별 그래프로 보여준다. 해당 주(ex. 2023.06.05(월)~2023.06.11(일))가 지나면 다음 주(ex. 06.12(월)~06.18(일)) 날짜가 그래프 하단에 표시된다. 회원이 하루에 입/퇴실을 여러번 한 기록 모두 그 날 하루의 누적 시간에 포함된다. DB에 회원의 총 누적 공부 시간과 일별 공부시간은 초기화 하지 않는다. 정리하면, 주가 바뀔 때 마다 DB에 저장된 시간 관련 데이터를 초기화 하지 않고 해당하는 주 데이터만 불러와서 그래프에 보여준다. [JAVA_controller] 일주일에 해당하는 날짜와 일별 누적 시간을 담아둘 배열을 선언했다. String[] setThisWeek = new St..