์ค๋ ๊ณต๋ถํ ๋ด์ฉ
- ๋น ์ค ํ๊ธฐ๋ฒ ์ ๋ฆฌ
- msa ๊ฐ๋ฐ
- mockMvc ํ ์คํธ ์ธ์ฝ๋ฉ ๊นจ์ง ๋ฌธ์ ํด๊ฒฐ
๐ญ ๋๋ ์ & ๋ฐฐ์ด ์
JWT์ ์ฒ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํด์ผํ ์ง ๊ณ์ ๊ณ ๋ฏผ์ด์๋๋ฐ, ๊ด๋ จํด์ ์ข์ ์ ๋ณด๋ฅผ ์ป์๋ค.
https://www.inflearn.com/questions/360062
accesstoken๋ก ์ธ์ฆ ํ ๋ค๋ฅธ์๋น์ค ํธ์ถ ์ ์ ์ ์ ๋ณด๋ฅผ ์ด๋์ ๋ฐ์์์ผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค. - ์ธํ
์๋ ํ์ธ์! ์ข์๊ฐ์ ์ ๋ฃ๊ณ ์์ต๋๋ค! ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ๊ถ๊ธํ์ ์ด ์๋๋ฐ์. accesstoken๋ก ์ธ์ฆ ํ ๋ค๋ฅธ์๋น์ค ํธ์ถ ์ ์ ์ ์ ๋ณด๋ฅผ ์ด๋์ ๋ฐ์์์ผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค. ์๋ฅผ๋ค์ด apigateway์ธ์ฆ
www.inflearn.com
์ง๋ฌธ๊ณผ ๋ต๋ณ์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ๊ถ๊ธํ์ ์ด ์๋๋ฐ์.
accesstoken๋ก ์ธ์ฆ ํ ๋ค๋ฅธ์๋น์ค ํธ์ถ ์ ์ ์ ์ ๋ณด๋ฅผ ์ด๋์ ๋ฐ์์์ผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค.
์๋ฅผ๋ค์ด apigateway์ธ์ฆํ ํ์์ด ์ฃผ๋ฌธ์ ํ ๊ฒฝ์ฐ ์ฃผ๋ฌธ์ํ ํ์ ์์ด๋(memberId) PK ๊ฐ ์ฃผ๋ฌธ์๋น์ค์์๋ ํ์ํ ๊ฒ ๊ฐ์๋ฐ์.
ํ์ฌ api gateway์์ ์ธ์ฆ ํ ์ฃผ๋ฌธ์๋น์ค์์ ํด๋น ํ ํฐ์ ๋ํ payload์์ ์ ์ PK๋ฅผ ๋ฐ์์์ผ ํ๋๊ฒ์ธ์ง ๋ค๋ฅด๊ฒ ๋ฐ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋๊ฒ์ธ์ง.. ๊ถ๊ธํฉ๋๋ค.
์๋ ํ์ธ์, ์ด๋์์ ๋๋ค.
apigateway-service์์ JWT ์ธ์ฆ ํ์, ํด๋น ์๋น์ค(order-service๋ user-service)๋ก ์ด๋์ ํ๊ฒ ๋๋๋ฐ, ์ด๋๋ ์๋น์ค(order-service๋ user-service)์ JWT๋ฅผ header๋ฅผ ํตํด ์ ๋ฌํ์ค ์ ์์ต๋๋ค. ํด๋น ์๋น์ค์์๋ Header์ ํฌํจ๋ ์ ๋ณด๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉ์ ์ธ์ฆ์ฌ๋ถ ๋ฐ ์์ด๋๋ฅผ ํ์ธํ์ค ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ , apigateway-service๋ฅผ ์ฌ์ฉํ๋ ๋ชฉ์ ์ ๊ฐ๊ฐ์ ์๋น์ค๋ค์์ ๋ณ๋๋ก ์ธ์ฆ์ ํ์ง ์๊ณ , ๋น์ฆ๋์ค ๋ณธ์ฐ์ ์ ๋ฌด์ ์ถฉ์ค(๋น์ฆ๋์ค ๋ก์ง)ํ๊ธฐ ์ํจ์ด๊ธฐ ๋๋ฌธ์, apigateway์์ JWT๋ฅผ ์ธ์ฆํ ๋ค์์, ํด๋น ์๋น์ค๋ก๋ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ง ์ ๋ฌํด์ ์ฌ์ฉํ์ค ์๋ ์์ต๋๋ค. ๋ฌผ๋ก apigateway์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ์๋น์ค ์ ์ฒด์ ์ํฅ์ ๋ฏธ์น ์ ์๋ SPOF(Single Points of Failure)์ ๋ฌธ์ ๋ ์๊ธฐ ๋๋ฌธ์, ์ด์คํ๋ก ๊ตฌ์ฑํ์๋๊ฒ ํ์ํฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์ธ์ฝ๋ฉ(encoding) ๊นจ์ง ๋ฌธ์ ํด๊ฒฐ์ ๋ค์๊ณผ ๊ฐ๋ค.
@Autowired
private lateinit var mockMvc: MockMvc
@Autowired
private lateinit var ctx: WebApplicationContext
/**
* ์ธ์ฝ๋ฉ ๊นจ์ง ๋ฌธ์ ํด๊ฒฐ
* https://github.com/HomoEfficio/dev-tips/blob/master/Spring%20Test%20MockMvc%EC%9D%98%20%ED%95%9C%EA%B8%80%20%EA%B9%A8%EC%A7%90%20%EC%B2%98%EB%A6%AC.md
*/
@BeforeEach
fun encodingSetUp() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(ctx)
.addFilters<DefaultMockMvcBuilder>(CharacterEncodingFilter("UTF-8", true))
.build()
}
๐ฅ ๋ด์ผ ๊ณต๋ถํ ๋ด์ฉ
- ํ์ ์ ๋ณด ์กฐํ ๊ตฌํ ํ, ๋ชจ์ ์๋น์ค ๊ฐ๋ฐ
- ์๊ณ ๋ฆฌ์ฆ ๋ณต์ต
๐ฅ ์ธ์ ๊ฐ..
- ๋ก๊ทธ ๊ด๋ จ ์ ๋ฆฌํ๊ธฐ
- ์ํ๋ฆฌํฐ ๊ด๋ จ ์ ๋ฆฌํ๊ธฐ
- Red-Black Tree
- ์ ๋์จ&ํ์ธ๋ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถํ๊ธฐ
- ๋น ์๋์ & ๋ฆฌํ์๋์ ์ ๋ฆฌํ๊ธฐ
- ์ฝํ๋ฆฐ ์ธ ์ก์ ์ฝ๊ธฐ
- MethodSecurityInterceptor
์ค๋ ๊ณต๋ถํ ๋ด์ฉ ํฌ์คํ
https://ttl-blog.tistory.com/926
[์๊ณ ๋ฆฌ์ฆ] ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋น ์ค(Big-Oh)
๐ง ์๊ณ ๋ฆฌ์ฆ? ์ด๋ค ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํ ์ ํํ ์ ์ฐจ์ ๋ฐฉ๋ฒ์ ์๋ฏธํฉ๋๋ค. ์ ์ ์์์์ ๋ฌธ์ ๋ ๋ณดํต ์ ๋ ฅ๊ฐ์ด ๋์ผํ ๊ฒฝ์ฐ ์ถ๋ ฅ๊ฐ์ด ๋์ผํ, ์ฆ ์ํ์ ์ผ๋ก ์๋ฐํ ์ ์๋ ๋ฌธ์ ๋ฅผ ์๋ฏธํฉ๋๋ค.
ttl-blog.tistory.com
'๐ณ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 2022-09-07 (0) | 2022.09.08 |
---|---|
[TIL] 2022-09-06 (0) | 2022.09.06 |
[TIL] 2022-09-04 (0) | 2022.09.05 |
[TIL] 2022-09-03 (0) | 2022.09.03 |
[TIL] 2022-09-02 (0) | 2022.09.03 |