Home [TIL] 2022-11-08
Post
Cancel

[TIL] 2022-11-08

๐Ÿ˜ฒ ์˜ค๋Š˜์˜ ๊ฐœ๋ฐœ ์ผ์ง€


  • ์˜ค๋Š˜๋„ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋ฉด์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. IllegalArgumentException์ด ๋–ด์—ˆ๋Š”๋ฐ ๋ณ€์ˆ˜๋ช…๋ถ€ํ„ฐ ํ•ด์„œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํ™•์ธํ•ด๋ดค์ง€๋งŒ ๊ทธ๋ž˜๋„ ์•ˆ๋๋‹ค.
    • ์•Œ๊ณ ๋ณด๋‹ˆ api ํ˜ธ์ถœํ•จ์ˆ˜๋ฅผ suspend ํ•จ์ˆ˜๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์•„์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์˜€๋‹ค.
    • ๊ฒ€์ƒ‰ํ–ˆ์„ ๋•Œ api ํ˜ธ์ถœํ•  ๋•Œ๋Š” suspend ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ธ€์„ ๋ดค๋Š”๋ฐ ์™œ ๊ทธ๋Ÿฐ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋‹ค.
    • ์•„๋งˆ ์ฝ”๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ฝ”๋“œ ๋™์ž‘ ์ˆœ์„œ์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๊ฒƒ ๊ฐ™๋‹ค.
    • ์“ฐ๋ฉด์„œ ๋Š๋‚€๊ฑฐ์ง€๋งŒ ์ฝ”๋ฃจํ‹ด์„ ์‚ฌ์šฉํ•˜๊ธฐ์— ์•„์ง ๋„ˆ๋ฌด ๋ชจ๋ฅด๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ ์ฒ˜์Œ ์•ˆ ์‚ฌ์‹ค์ด ์žˆ๋‹ค. @Body ํ˜•ํƒœ๋กœ String ๊ฐ’์„ ๋ณด๋‚ด๋Š”๋ฐ postman์ด๋‚˜ swagger๋กœ ํ…Œ์ŠคํŠธํ•  ๋•Œ json ํ˜•ํƒœ๋กœ key ๊ฐ’์„ ์„ค์ •ํ•ด์„œ ๋ณด๋‚ด๋ฉด ์•ˆ๋๋‹ค.
    • ์•„๋งˆ ๋ณดํ†ต @Body๋กœ ๋ณด๋‚ผ ๋•Œ ๊ฐ์ฒด๋ฅผ ๋ณด๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜๋ช…์„ key ๊ฐ’์œผ๋กœ ํ•˜์ง€๋งŒ String ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ String ๊ฐ’๋งŒ ๋ณด๋‚ด๋Š” ๊ฒƒ ๊ฐ™๋‹ค. image
  • Interceptor ํด๋ž˜์Šค์˜ intercept ํ•จ์ˆ˜์—์„œ api ๊ฒฝ๋กœ๊ฐ’์— ๋”ฐ๋ผ header๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • 1
      2
      3
      4
      5
      6
      7
      8
      9
      
        private val noJwtUrls = arrayListOf("/api/user/kakao/login", "/api/user/naver/login")
      
        val url = chain.request().url.encodedPath
        Log.d(TAG, "intercept url: $url")
        if(noJwtUrls.contains(url)) {
            Log.d(TAG, "intercept: No JWT")
            return chain.proceed(chain.request().newBuilder()
                .build())
        }
      

      ์—ฌ๊ธฐ์„œ๋Š” noJwtUrls ๋ฐฐ์—ด ์•ˆ์— ์žˆ๋Š” ๊ฒฝ๋กœ ์ค‘ ํ•˜๋‚˜๋ฉด Header๋ฅผ ์•ˆ ๋ถ™์ด๋„๋ก ํ–ˆ๋‹ค.

  • LoginActivity์—์„œ ๋กœ๊ทธ์ธ์„ ์„ฑ๊ณตํ•˜๋ฉด MainActivity๋ฅผ ๋„์šฐ๊ณ  MainActivity์—์„œ ๋’ค๋กœ๊ฐ€๊ธฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ์•ฑ์ด ์ข…๋ฃŒ๋˜๋„๋ก LoginActivity๋ฅผ Task์—์„œ ์‚ญ์ œํ•˜๊ณ  MainActivity๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.
    • 1
      
          intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
      

      Intent์˜ flag ๊ฐ’๋“ค์„ ์œ„์ฒ˜๋Ÿผ ์„ค์ •ํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ๋‹ค.

This post is licensed under CC BY 4.0 by the author.

[TIL] 2022-11-07

[TIL] 2022-11-09