Spring 41

94일차(1)/Android App(58) : mp3 파일 재생 예제 / Metadata 추출

94일차(1)/Android App(58) : mp3 파일 재생 예제 / Metadata 추출 - 안드로이드 화면에서 로그인 처리해서 개인 음악목록 출력하기 - mp3파일의 메타데이터 추출 - Spring의 이 메소드에서 로그인 성공여부가 json문자열로 전달된다. - json문자열을 map에 담아서 리턴해준다. - 로그인 정보를 session에 담아서 session에서 읽어온다. - session이란 서버의 클라이언트 처리 방식이다. 하나의 서버 요청을 100명이 보낸다고 하면, 그 100명을 각각 구분할 수 있어야 한다. - sessionDB를 톰캣 서버가 알아서 운영하고 있다. - 이 sessionDB에 클라이언트를 담으면 session id 가 생기고, id라는 키값으로 특정 이름이 저장된다. -..

국비교육(22-23) 2023.02.21

93일차(1)/Spring Boot(16) : Custom Exception 활용 예제

93일차(1)/Spring Boot(16) : Custom Exception 활용 예제 - 개인이 업로드한 음악를 재생가능한 음악 재생 리스트를 만들고 있다. - 업로드된 mp3파일을 재생 가능하도록 설정해둠 - 음악 각각의 링크를 누르면 javascript가 실행되면서 해당 DB 데이터의 primary key를 전달하도록 설정했다. - js에서 이 번호를 이용해서 서버에서 페이지 전환 없이 정보를 받아온다. - @ResponseBody로 json 문자열을 가져온다. - json데이터를 이 js의 data에서 사용한다. data에 들어오는 것은 object이다. - data 안의 title, saveFileName을 사용해서 사용자의 요청에 응답할 준비를 하는 것! - 이렇게 object로 변환된 값이 ..

국비교육(22-23) 2023.02.20

91일차(1)/Spring Boot(15) : mp3 파일 업로드, 재생 / AOP 활용 예제

- 안드로이드 재생 플레이어 만들기 중 Spring Boot 부분 추가중! - 파일 업로드 폼에서 mp3파일만 선택 가능하게 하고 싶다면, - jsp의 insertform 에서 지정해주면 된다. - input 요소에 accept 라는 속성이 있다. 여기서 업로드할 수 있는 확장자를 지정할 수 있다. - 여러 종류를 지정하고 싶다면 , 로 구분해서 나열하면 된다. - input요소 name 속성의 value 값을 주의해서 넣어야 한다! - 업로드를 처리할 때 쓰는 컨트롤러의 지역변수명과 같아야 한다. - 만약 다르게 쓰고싶다면 이렇게 쓸 수도 있다. - @RequestParam 은 요청 파라미터의 기능을 지원하는 어노테이션 - 이 @RequestParam 어노테이션에는 defaultvalue 라는 것이 있..

국비교육(22-23) 2023.02.19

90일차(2)/Spring Boot(14) : mp3 파일 업로드, metadata 추출

90일차(2)/Spring Boot(14) : mp3 파일 업로드, metadata 추출 - STS에서 음악관련 기능 추가해보기 (안드로이드 끄고 진행) - 제대로 만들어진 음악 파일에는 mp3파일에 위와 같이 메타데이터가 들어있다. - 타이틀과 같이 이미지가 들어있을 수도 있다. - mp3파일을 업로드하게 되면 라이브러리로 음원의 메타데이터를 추출해낼 수 있다. - 메타데이터 추출연습! - 자기가 올린 파일은 자기만 재생할 수 있도록 하기 위해서 writer가 필요하다. (Interceptor 적용해서 로그인한 사람만 업로드할 수 있도록 할 에정) - music 관련한 파일을 저장할 패키지 생성 MusicController package com.sy.boot07.music.controller; impo..

국비교육(22-23) 2023.02.17

82일차(1)/Android App(44) : 로그아웃 기능 구현

82일차(1)/Android App(44) : 로그아웃 기능 구현 - 로그인 기능 코드 리뷰 AndroidController - logincheck 요청에서 Map 요청 - Map을 responsebody로 요청하면 { } 이렇게 json 문자열로 응답된다. - session을 사용해서 저장된 id가 없으면 isLogin이라는 키 값으로 값을 담아준다. - 저장된 id가 있으면 true와 아이디를 담아준다. - 클라이언트가 웹브라우저가 아니고 안드로이드 앱이므로! json으로 응답한다. [ 웹서버가 json으로 응답하는 case ] 1. 웹브라우저에서 ajax 요청을 해올 때 2. 모바일 App에서 http 요청을 해올 때 1. 웹브라우저에서 ajax 요청을 해올 때 {"isLogin":true} 이런 ..

국비교육(22-23) 2023.02.06

80일차(1)/Android App(43) : 로그인 기능 구현

80일차(1)/Android App(43) : 로그인 기능 구현 - 웹서버는 수많은 클라이언트의 요청을 처리한다. - 1~3 클라이언트 : 웹브라우저, 4~5 클라이언트 : 안드로이드 라고 하자. - 웹서버는 이런 클라이언트들이 요청해오면 보통 html 컨텐츠를 응답한다. - 웹서버에 뭔가 요청을 하면 어떤 값을 리턴해주는데 이는 데이터(html), 디자인(css)과 동작(js)을 같이 응답하는 것이다. - 웹브라우저 상에서 뭔가의 서비스를 이용할 수 있도록 한다. - 그런데 앱이 요청을 하면? 응답은 json으로 한다. - 동작은 이미 앱 안에서 정해져 있고, 데이터(json)만 전달한다. - 앱에게 디자인, 동작을 응답하지는 않는다. 앱에게 필요한 링크만 응답한다. - 웹서버는 모든 요청에 항상 응답..

국비교육(22-23) 2023.02.03

77일차(4)/Android App(40) : Http POST방식 요청하기(3)

77일차(4)/Android App(40) : Http POST방식 요청하기(3) step17httprequest3 - http 요청 코틀린으로 작성해보기 - 안드로이드 스튜디오의 기능 중 java->kotlin 변환기능이 있다. - Util을 가져와서 우클릭- convert to Kotlin 을 해본다! - 오류나는건 일부 수정하기.. Util.kt package com.example.step17httprequest3 import android.app.Activity import android.content.Context import android.os.AsyncTask import android.view.View import android.view.ViewGroup import android.view..

국비교육(22-23) 2023.01.30

64일차(1)/Spring Boot(13) : static 폴더 활용하기

64일차(1)/Spring Boot(13) : static 폴더 활용하기 - webapp-resources 폴더 대신 static 폴더를 사용하는 구조로 전환하기 STS Boot07_Final에 추가하기 - feature/upload_download 브랜치로 이동 - src-main-webapp 이 있는 구조. 직접 webapp 폴더를 만들어주고 그 안에 jsp를 위치시켜주었다. - 정적인 자원은 resources 폴더를 만들어주었다. Spring Boot가 jsp 친화적이지 않아서! - 하지만 Spring Boot 프로젝트에서는 jsp(webapp폴더 포함)를 아예 만들지 않을 때도 있다. - 지금 EL, c:choose 등 jstl을 다양하게 사용하고 있는데, jsp 없이 어떻게 작성할 수 있을까? ..

국비교육(22-23) 2023.01.06

62일차(1)/Spring Boot(12) : 로그인 폼 css추가, 로그인정보 저장 기능 구현

62일차(1)/Spring Boot(12) : 로그인 폼 css추가, 로그인정보 저장 기능 구현 - 지난 코드 리뷰 (custom.properties, ResponseEntity) - 모바일 App 개발 간단 소개 - 로그인 폼 css추가 - 로그인 폼 로그인정보 저장 기능 구현 - Boot07 프로젝트는 레거시 프로젝트와의 호환성을 고려해서 만듦! - master 브랜치 이후의 커밋은 boot의 기능을 적극 활용하여 만든 기능 - spring boot에서는 src-main-webapp이 디폴트값으로 존재하지 않는다. - java jsp 페이지를 활용하려면 폴더를 따로 만들어야 한다. - webapp 안에 직접 폴더를 구성해줌으로서 jsp 페이지를 사용할 수 있다. - 전에 사용하던 resources폴더..

국비교육(22-23) 2023.01.05

61일차(1)/Spring Boot(10) : file, gallery 게시판 파일 저장경로, 다운로드 기능 수정 / Boot 기능 활용

61일차(1)/Spring Boot(10) : 파일 저장경로, 다운로드 기능 수정 - file 자료실게시판 저장경로, 다운로드 관련 수정 - gallery 게시판 저장경로 수정 - Spring에서 작업한 프로젝트를 Spring Boot의 추가된 기능을 활용해서 똑같이 구현해보기! - 호환성을 고려해서 최대한 수정을 적게 하면서 이식함 - 파일경로 옮기는 브랜치는 별도로 두고 master에 merge 하지는 않을 예정! - 각각의 브랜치가 어떤 파일을 만들기 위한 것인지 알아두기! - war는 tomcat으로 가져다 놓고 실행할 수 있었지만, jar파일은 실행방식이 좀 다르다. - 빨간색이 좀더 Spring Boot 다운 방식이다. - war파일 버전은 레거시 프로젝트 환경에 가능한 맞춘 것이다. - ga..

국비교육(22-23) 2023.01.03