인턴일지

인턴 Day18 (Android, Spring 연동 (retrofit2) / WebView)

Calice 2022. 5. 13. 17:40

0. Day17

- 배운 것 

1. Android, Spring 연동 (retrofit2)

인턴 초기에 만든 웹 사이트를 어플로 만들어야 한다는 이야기를 듣고 코틀린 공부를 짧게 하고 안드로이드 스튜디오를 설치했다. 로그인과 회원가입 뷰를 만드는건 어렵지 않았고, 입력받은 로그인 정보를 확인하는 과정에서 웹서버를 거쳐야 하는데 그 과정에서 retrofit을 사용했다. 

1. Android, Spring 연동 (retrofit2)

- 참고 사이트 https://koharinn.tistory.com/581

 

[Spring] Android, Spring 연동 (retrofit2)

Retrofit Server와 Client 사이 http 통신을 위한 라이브러리 HttpClient, Volley, Okhttp 등 라이브러리가 있었지만 HttpClient, Volley는 deprecated되었고, Okhttp를 더 쉽게 사용하도록 한 것이 retrofit이다...

koharinn.tistory.com

 

//안드로이드
object RetrofitBuilder {
    var api: API
    init{
        val retrofit = Retrofit.Builder()
            .baseUrl("요청 보내는 API 서버 url. /로 끝나야 함함")
            .addConverterFactory(GsonConverterFactory.create()) // Gson을 역직렬화
            .build()
        api = retrofit.create(API::class.java)
    }
}
//스프링 controller
		@PostMapping(value="android")
		@ResponseBody
		public String androidResponse(@RequestBody MemberDTO dto, Model model, HttpSession session) {
			MemberDTO result=memberService.loginUser(dto);
			String re="";
		      if(null == result){
		    	  model.addAttribute("message","ID나 PW가 틀립니다.");
		    	  model.addAttribute("memberDTO",null);
		         re= "실패";
		      }else{
		    	  session.setAttribute("loginName", result.getUsername());
		    	  session.setAttribute("loginId", result.getUserid());
		    	  session.setAttribute("memberDTO", result);
		    	  System.out.println(session);
		    	  model.addAttribute("memberDTO",result);
		    	  re= "성공";
		    	  }
		      System.out.println(re);
		      return re;
		      
		
		}

- 스프링으로 기존에 만들어두었던 로그인 체크 로직을 불러와 확인하는 과정을 거쳤다. 

- 이미 존재하는 아이디 비번을 넣었을 때 controller에서 로직이 잘 작동하면 성공을 리턴해주기로 함.

- 하지만 이 방법은 매번 웹서버에 체크체크체크 하면서 속도 저하의 이유로 사용하지 않고 그냥 웹뷰로 하기로 했다. 

- 웹뷰에 대한 영상 https://www.youtube.com/watch?v=S4kd9OPzcf0