java 180

95일차(1)/Android App(59) : mp3 파일 재생 예제 / 곡 목록 출력

95일차(1)/Android App(59) : mp3 파일 재생 예제 / 곡 목록 출력 - Spring Boot 와 안드로이드, 웹서버 연결하는 방법 학습 - 전부 외우는 것이 아니라 각 코드 블록의 역할과 기능을 이해할 수 있으면 된다. - @ResponseBody로 list, dto, map 등을 리턴하게 되면 JSON 문자열이 응답된다. - dao로 음악 목록을 가져와서 응답하면 [ ] , { } 형태의 문자열이 응답된다. - 웹브라우저와 동일하게 안드로이드도 403 을 응답받는다. (로그인하지 않은경우) - Spring Framework가 동작하는 와중에 개입하는 인터셉터가 설정되어있기 때문에 - LoginInterceptor, MobileLoginInterceptor 가 bean이 되어있다. -..

국비교육(22-23) 2023.02.22

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일차(2)/Android App(57) : mp3 파일 재생 예제 / 로그인 기능 구현

- 이전에 웹으로 만든 재생페이지를 안드로이드로 만들기! - webview로 띄울 수도 있지만 안드로이드 native를 사용해서 만들어볼 것이다. MainActivity (전체) package com.example.step23mp3player; import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.content.SharedPreferenc..

국비교육(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

90일차(1)/Android App(56) : mp3 파일 재생 예제 / 재생목록 출력(ListView)

90일차(1)/Android App(56) : mp3 파일 재생 예제 / 재생목록 출력(ListView) - mp3 파일 여러개를 안드로이드 ListView에 넣어서 보여주기 - 음악파일에는 앨범,타이틀 이미지 등 여러 정보가 들어있다. 이 정보를 읽어오기! - Spring 의 자원을 넣는 폴더 안에 넣어주기 - 서버에서는 json으로 출력 → 안드로이드가 받아서 listview에 출력 → 그 listview 셀을 클릭하면 재생할 준비를 하고 재생하도록! - 안드로이드 리스트뷰 만들기 activity_main.xml android:choiceMode="singleChoice" - 선택 모드. 하나씩 선택할 수 있는 레이아웃이다. - 이런 형태로 레이아웃을 잡아준다! MainActivity package ..

국비교육(22-23) 2023.02.16

89일차(1)/Android App(55) : mp3 파일 재생 예제 / Notification(3)

89일차(1)/Android App(55) : mp3 파일 재생 예제 / Notification(3) - Service 를 상속하고 서비스 onbind() 메소드를 오버라이드했다. - onCreate는 생성자처럼 최초 1번만 활성화되는 것! - onStartCommand는 이것을 활성화시킬 intent가 도착하면 여러번 호출되는 것. - 이전예제에서는 액티비티에서 MediaPlayer 를 사용해서 재생하게 되어있는데, Service 안에서 재생하는 것으로 바꾸어 볼 예정! (액티비티의 활성화/비활성화와 상관없이 백그라운드에서 계속 재생될 수 있도록 하기 위해서!) - Onstart에서 서비스를 시작시키고 → 서비스 바인딩 설정 → 알림바의 기능버튼을 사용할 수 있도록 수정할 것 - 액티비티의 내용을 se..

국비교육(22-23) 2023.02.16

88일차(2)/Android App(54) : mp3 파일 재생 예제 / Notification(2)

88일차(2)/Android App(54) : mp3 파일 재생 예제 / Notification(2) - 새 서비스 생성 MusicService 생성 package com.example.step23mp3player; import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.util.Log; public class MusicService extends Service { //서비스가 최초 활성화될 때 한번 호출되는 메소드 @Override public void onCreate() { super.onCreate(); } //최초 활성화 혹은 이미 활성화된 이후 이 서비스를 활성화 하는 I..

국비교육(22-23) 2023.02.15

88일차(1)/Android App(53) : mp3 파일 재생 예제 / Notification(1)

88일차(1)/Android App(53) : mp3 파일 재생 예제 / Notification(1) MainActivity package com.example.step23mp3player; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.content.Context; import android.content.pm.PackageManager; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Build; import and..

국비교육(22-23) 2023.02.14