1026999
@10269998422
Reviews Written
-
Average Rating
-
Posts
Q&A
์๊ฐ๋ณต์ก๋์ ์๊ฐ์ ํ ์ง๋ฌธ์ ๋๋ค.
์๊ฐ๋ณต์ก๋๊ฐ O(n^2)์ธ ์๊ณ ๋ฆฌ์ฆ์ด 1๋ง๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋, ์ผ๋ฐ์ ์ผ๋ก 1์ด ์ด๋ด์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.๊ทธ๋ฌ๋ ์ด๋ ๋งค์ฐ ์๋์ ์ธ ๊ธฐ์ค์ด๋ฉฐ, ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํ ๋ฐฉ๋ฒ, ์ฌ์ฉ๋๋ ์ปดํจํฐ์ ์ฑ๋ฅ, ์ ๋ ฅ ๋ฐ์ดํฐ์ ํน์ฑ ๋ฑ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.๋ฐ๋ผ์, ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ์ธก์ ํ๊ณ ์๊ฐ์ ํ์ ์์ธกํ๋ ค๋ฉด ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ์ค์ ๋ก ์คํํด๋ณด๋ ๊ฒ์ด ๊ฐ์ฅ ํ์คํ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ํ, ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ ๋์ด๊ธฐ ์ํด ์ต์ ํ ๊ธฐ๋ฒ ๋ฑ์ ์ ์ฉํ ์๋ ์์ต๋๋ค.
- 0
- 2
- 492
Q&A
request
๋ฐ์ค์ด ์ณ์ง๋ ์ด์ ๋ @RequestBody ์ด๋ ธํ ์ด์ ์ผ๋ก ์ธํด ์คํ๋ง์ด ํด๋น ๋งค๊ฐ๋ณ์๊ฐ HTTP ์์ฒญ์ ๋ณธ๋ฌธ(body)์ ์๋ JSON ๋๋ XML ๋ฐ์ดํฐ๋ก๋ถํฐ ๊ฐ์ ๋ฐ์ธ๋ฉํด์ผ ํ๋ค๋ ๊ฒ์ ๋ํ๋ด๊ธฐ ์ํด์์ ๋๋ค.๋ฐ๋ผ์ ํด๋น ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ๊พธ๋ฉด ์คํ๋ง์ด HTTP ์์ฒญ ๋ณธ๋ฌธ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ์ง ๋ชปํ๊ฒ ๋๋ฏ๋ก ๋ฐ์ค์ด ์ณ์ง๋ ๊ฒ์ ๋๋ค. ๋ง์ฝ ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๋ฉด, @JsonProperty ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ฌ ์์ฒญ ๋ณธ๋ฌธ์ ํ๋ ์ด๋ฆ๊ณผ ๋งคํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, UserUpdateRequest ํด๋์ค์์ name ํ๋๋ฅผ userName์ผ๋ก ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด @JsonProperty ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค: codepublic class UserUpdateRequest { @JsonProperty("userName") private String name; // ... } ์ด์ userName ํ๋ ์ด๋ฆ์ ์ฌ์ฉํ์ฌ HTTP ์์ฒญ ๋ณธ๋ฌธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ ์ ์์ต๋๋ค.
- 1
- 2
- 532
Q&A
Docker 2 - API ํจํค์ง "/" ์ฌ๋ฌ์ ์๋ต๊ฐ๋ฅ ์ฌ๋ถ ์ง๋ฌธ
Dockerfile์์ ๋ง์ง๋ง ์ฌ๋์ "/"๋ ์๋ต ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ Dockerfile์์ ๋ช ๋ น์ด๊ฐ ๋ค์ ์ค๋ก ์ด์ด์ง ๋, ๋ช ๋ น์ด์ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ตฌ๋ถ์๋ก, ๋ง์ง๋ง ์ค์๋ ์ฌ์ฉํ์ง ์์๋ ๋ฉ๋๋ค. ๋ฐ๋ผ์, ์๋์ ๊ฐ์ด ์์ฑํด๋ ๋์ผํ๊ฒ ๋์ํฉ๋๋ค.WORKDIR /myfolder COPY ./package.json /myfolder COPY ./yarn.lock /myfolder ๊ฒฐ๊ณผ์ ์ผ๋ก, ์ฌ๋์์ ์ ๋ฌด๋ Dockerfile์ ๋ฌธ๋ฒ์ ์ธ ์๊ตฌ์ฌํญ์ด ์๋๋ฉฐ, ์์ฑ ์คํ์ผ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
- 0
- 1
- 341
Q&A
mysql ๋น๋ฐ๋ฒํธ ์ฌ์ค์
์๋ฌ ๋ฉ์์ง๊ฐ 'Access denied for user 'root'@'localhost' (using password: YES)' ์ด๋ผ๋ฉด ์ ๋ ฅํ ๋น๋ฐ๋ฒํธ๊ฐ ํ๋ ธ๋ค๋ ์๋ฏธ์ ๋๋ค. ์๋ง๋ ๋น๋ฐ๋ฒํธ ์ด๊ธฐํ ๊ณผ์ ์์ ๋ฌด์ธ๊ฐ ์๋ชป ์ ๋ ฅํ๊ฑฐ๋ ์ ์ฅํ์ง ์์์ ๋ฐ์ํ ๋ฌธ์ ์ผ ์๋ ์์ต๋๋ค.๋น๋ฐ๋ฒํธ๋ฅผ ์ด๊ธฐํํ ๋ ๋ค์๊ณผ ๊ฐ์ ์ ์ฐจ๋ฅผ ๋ฐ๋ฅด์ จ๋์ง ํ์ธํด๋ณด์ธ์.MySQL ์๋ฒ๋ฅผ ์ ์งํฉ๋๋ค.๋ค์ ๋ช ๋ น์ ์คํํ์ฌ MySQL์ ๊ถํ ์์ด ์คํํฉ๋๋ค.sudo mysqld_safe --skip-grant-tables ๋ค๋ฅธ ํฐ๋ฏธ๋ ์ฐฝ์ ์ด๊ณ MySQL์ ์คํํฉ๋๋ค.mysql -u root ๋ค์ ๋ช ๋ น์ ์คํํ์ฌ MySQL์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ค์ ํฉ๋๋ค. UPDATE mysql.user SET authentication_string=password('์๋ก์ด๋น๋ฐ๋ฒํธ') WHERE user='root' AND Host = 'localhost'; FLUSH PRIVILEGES; MySQL ์๋ฒ๋ฅผ ์ ์์ ์ผ๋ก ์์ํฉ๋๋ค.sudo systemctl start mysql ๋ค์ ๋ก๊ทธ์ธํ์ฌ ์๋ก์ด ๋น๋ฐ๋ฒํธ๊ฐ ์ ์ ์ฉ๋์๋์ง ํ์ธํฉ๋๋ค. mysql -u root -p
- 1
- 2
- 16K
Q&A
์ฑ๊ธํคํจํด์์ ์ง๋ฌธ
init() ๋ฉ์๋๋ ์ธ์คํด์ค ์์ฑ ์ ์ด๊ธฐํ๋ฅผ ๋ด๋นํ๋ ๋ฉ์๋๋ก ๋ณดํต ์์ฑ์(constructor)์์ ์ํํฉ๋๋ค. ํ์ง๋ง, ์ฑ๊ธํค ํจํด์์๋ ์์ฑ์๋ฅผ private์ผ๋ก ์ ์ธํ๋ฏ๋ก ์ด๊ธฐํ ์ฝ๋๋ฅผ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.๊ทธ๋์ instance ํ๋กํผํฐ์ getter ๋ฉ์๋์์ ์ด๊ธฐํ ์ฝ๋๋ฅผ ํธ์ถํ๋ ๊ฒ์ ๋๋ค. ๋ง์ฝ init()์ ํธ์ถํ์ง ์๊ณ , return s_instance;๋ง ์์ฑํ๋ค๋ฉด, s_instance๊ฐ ์์ง ์ด๊ธฐํ๋์ง ์์์ ๋ null์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.๋ฐ๋ผ์ init() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ s_instance๋ฅผ ์ด๊ธฐํํ๊ณ , ์ด๊ธฐํ๋ s_instance๋ฅผ ๋ฐํํ๋๋ก ์์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด s_instance๋ฅผ ํธ์ถํ ๋๋ง๋ค ์ด๊ธฐํ ์ฝ๋๋ฅผ ์์ฑํ ํ์ ์์ด, ํญ์ ์ด๊ธฐํ๋ ์ธ์คํด์ค๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- 0
- 1
- 562
Q&A
์ฑ๊ธํค ์ง๋ฌธ ๋๋ฆฝ๋๋ค.
์ฑ๊ธํค์ ํ๋์ ๊ฐ์ฒด ์ธ์คํด์ค๋ง ์์ฑํ์ฌ ์ฌ๋ฌ ๊ณณ์์ ๊ณต์ ํ์ฌ ์ฌ์ฉํ๋ ๋์์ธ ํจํด์ ๋๋ค. ์คํ๋ง์์ ์ฑ๊ธํค์ผ๋ก ๋ฑ๋ก๋ ๋น์ ์ปจํ ์ด๋์์ ์์ฑ๋ ์ธ์คํด์ค๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด์์ ๊ณต์ ํ์ฌ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ํ์ผ ์์คํ ์ ๊ทผ, ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋ฑ๊ณผ ๊ฐ์ด ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ ํ ๋ ์ฑ๊ธํค ํจํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด, ์ธ์คํด์ค๋ฅผ ์ฌ๋ฌ ๊ฐ ์์ฑํ์ง ์์ ์์ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ๊ณ , ์ธ์คํด์ค ๊ฐ์ ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฌธ์ ๋ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๋ํ, ์คํ๋ง์์๋ ์ฑ๊ธํค ํจํด์ ์ด์ฉํ์ฌ ์๋น์ค ๋น์ด๋ DAO ๋น ๋ฑ๊ณผ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋ฑ๋กํ์ฌ ๊ณต์ ํ๋ฉด, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋๋ ์ค์ผ ์ ์์ต๋๋ค.ํ์ง๋ง, ์คํ๋ง์์ ๋ชจ๋ ๋น์ ์ฑ๊ธํค์ผ๋ก ๋ฑ๋กํ๋ ๊ฒ์ ์ ์ ํ์ง ์์ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ํ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋น์ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ์์ ๊ณต์ ๋๋ฉด ์๋๋ฏ๋ก, ์ฑ๊ธํค์ผ๋ก ๋ฑ๋กํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋, @Scope ์ ๋ ธํ ์ด์ ๋ฑ์ ์ด์ฉํ์ฌ ๋น์ ์ค์ฝํ๋ฅผ ์ค์ ํ์ฌ ์ธ์คํด์ค์ ์์ฑ๊ณผ ์๋ฉธ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- 1
- 1
- 508
Q&A
ํ๋ ๋งํฌ, ์ฌ๋ณผ๋ฆญ ๋งํฌ
์๋ ํ์ธ์! ๋ต๋ณ๋๋ฆฌ๊ฒ ์ต๋๋ค.ํ๋ ๋งํฌ๋ ํ์ผ์ ๋ด์ฉ ์์ฒด๋ฅผ ๋ณต์ฌํ๋ ๊ฒ์ด ์๋๋ผ, ํ์ผ ์์คํ ์์ ํด๋น ํ์ผ์ inode ๋ฒํธ๋ฅผ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ ๋๋ค. ์ฆ, ํ๋ ๋งํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด ํ์ผ๊ณผ ๊ฐ์ ๋ด์ฉ์ ๊ฐ์ง ์๋ก์ด ํ์ผ์ด ์์ฑ๋๋ ๊ฒ์ด ์๋๋ผ, ๊ฐ์ ํ์ผ์ inode ๋ฒํธ๋ฅผ ๊ณต์ ํ๋ ์๋ก์ด ํ์ผ์ด ์์ฑ๋๋ ๊ฒ์ ๋๋ค.cp ๋ช ๋ น์ด๋ ํ์ผ์ ๋ณต์ฌํ๋ ๋ช ๋ น์ด์ด๊ธฐ ๋๋ฌธ์, ๊ธฐ์กด ํ์ผ๊ณผ ๊ฐ์ ๋ด์ฉ์ ๊ฐ์ง ์๋ก์ด ํ์ผ์ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ํ๋ ๋งํฌ๋ ๊ฐ์ ํ์ผ์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ฐธ์กฐํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ํ์ผ์ ๋ด์ฉ์ ๋ณต์ฌํ์ง ์๊ณ ๋ ์๋ก์ด ํ์ผ์ ์์ฑํ ์ ์์ด์ ๋์คํฌ ๊ณต๊ฐ์ ์ ์ฝํ ์ ์์ต๋๋ค. ๋ํ, ๊ธฐ์กด ํ์ผ์ ์์ ์ด ์๋ก์ด ํ์ผ์๋ ๋ฐ์๋๋ ์ฅ์ ์ด ์์ต๋๋ค.์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ์๋ณธ ํ์ผ์ด๋ ํด๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋งํฌ์ด๊ธฐ ๋๋ฌธ์, ํด๋น ํ์ผ์ด๋ ํด๋์ ๋ํ ๊ถํ์ ๋ฐ๋ผ๊ฐ๋๋ค. ์๋ฅผ ๋ค์ด, ์๋ณธ ํ์ผ์ด๋ ํด๋์ ์์ ์๋ ๊ทธ๋ฃน ๋ฑ์ ๊ถํ์ด ๋ณ๊ฒฝ๋๋ค๋ฉด, ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ๊ฐ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.ํ๋ ๋งํฌ๋ ๊ฐ์ ํ์ผ์ inode ๋ฒํธ๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์, ํฌ๊ธฐ๊ฐ 10๋ฐ์ดํธ์ธ ํ์ผ์ ํ๋ ๋งํฌ๋ก ๋ณต์ฌํ๊ฒ ๋๋ฉด ์ฌ์ด์ฆ๋ 10๋ฐ์ดํธ๊ฐ ๋ฉ๋๋ค. ์ฆ, ๋์คํฌ ๊ณต๊ฐ์ ์ถ๊ฐ๋ก ์ฐจ์งํ์ง ์์ต๋๋ค.์ฌ๋ณผ๋ฆญ ๋งํฌ์ ๊ฒฝ์ฐ์๋, ์ค์ ๋ก๋ ์๋ณธ ํ์ผ์ ๊ฐ๋ฆฌํค๊ธฐ ๋๋ฌธ์ ๋งํฌ ์์ฒด์ ํฌ๊ธฐ๋ ๋งค์ฐ ์์ต๋๋ค. ๋งํฌ ํ์ผ์ ์ฌ์ด์ฆ๋ ์๋ณธ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ์ฅํ๋ ๊ฒ๋ฟ์ด๊ธฐ ๋๋ฌธ์, ํฌ๊ธฐ๊ฐ ๋งค์ฐ ์์ต๋๋ค. ๋ฐ๋ผ์, ํฌ๊ธฐ๊ฐ 10๋ฐ์ดํธ์ธ ์๋ณธ ํ์ผ์ 10๋ฐ์ดํธ๋ก ํํํ๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
- 1
- 2
- 688
Q&A
์คํ๋ง MVC2 ํ์๋ฆฌํ ์ฒดํฌ๋ฐ์ค ๊ด๋ จ ์ง๋ฌธ
์ฒดํฌ๋ฐ์ค์์ ์ฌ์ฉ์๊ฐ ์ ํ์ ํ์ง ์์ ๊ฒฝ์ฐ, HTTP ์์ฒญ์์ ํด๋น ํ๋ผ๋ฏธํฐ๊ฐ ์ ๋ฌ๋์ง ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ, Spring MVC๋ ํด๋น ํ๋ผ๋ฏธํฐ์ ๊ฐ์ null๋ก ์ค์ ํฉ๋๋ค. ๋ฐ๋ผ์, ์ปจํธ๋กค๋ฌ์์ ํด๋น ํ๋ผ๋ฏธํฐ๋ฅผ Boolean ํ์ ์ผ๋ก ๋ฐ์ ๊ฒฝ์ฐ, null ๊ฐ์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์ด๋ฌํ null ์ฒ๋ฆฌ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด, ๊ธฐ๋ณธ ๊ฐ์ false๋ก ์ค์ ํ๋ ๊ฒ์ ํ๋์ ๋ฐฉ๋ฒ์ ๋๋ค.ํ์ง๋ง, Thymeleaf์์๋ th:field ๋๋ th:checked ์์ฑ์ ์ฌ์ฉํ๋ฉด, ์ฒดํฌ๋ฐ์ค๊ฐ ์ ํ๋์ง ์์ ๊ฒฝ์ฐ์๋ ํ๋ผ๋ฏธํฐ๊ฐ ์ ๋ฌ๋๋๋ก ์ค์ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด, ์ปจํธ๋กค๋ฌ์์ null ์ฒ๋ฆฌ๋ฅผ ํ์ง ์๊ณ ๋ ์ํ๋ ๊ฐ์ผ๋ก ์ด๊ธฐํํ ์ ์์ต๋๋ค. ๋ํ, th:field ๋๋ th:checked ์์ฑ์ ์ฌ์ฉํ๋ฉด, ์ฒดํฌ๋ฐ์ค์ ๊ฐ์ด Boolean์ด ์๋ ๋ค๋ฅธ ํ์ ์ผ๋ก ๋ณํ๋๋ ๊ฒฝ์ฐ์๋ ์๋์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์, Thymeleaf์์๋ th:field ๋๋ th:checked ์์ฑ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข ๋ ํธ๋ฆฌํ๊ณ ์์ ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
- 0
- 1
- 358
Q&A
๋ค์คํ ๋ฐฉ์์ผ๋ก goRouter Go๋ฅผ ์ฌ์ฉํ ๋, ์ฑ๋ฐํ์ดํ์ด ์ ์์ ์ผ๋ก ํ์๋์ง ์๋ ๋ฌธ์
์๋ ํ์ธ์! GoRouter๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ฐ์ํ ์ฑ๋ฐ ํ์ดํ์ด ์ ์ง๋์ง ์๋ ๋ฌธ์ ์ ๋ํด ๋ต๋ณ๋๋ฆฌ๊ฒ ์ต๋๋ค.GoRouter๋ฅผ ์ฌ์ฉํ๋ฉด router.location์ ์ด์ฉํด ํ์ฌ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ผ ์ ์์ง๋ง, ์ด ๊ฒฝ๋ก๋ ํ์ฌ ๋ณด์ฌ์ง๊ณ ์๋ ํ๋ฉด์ ๊ฒฝ๋ก์๋ ๋ฌด๊ดํ๊ฒ GoRouter์์ ๊ฐ์ง๊ณ ์๋ ๋ด๋ถ ๊ฒฝ๋ก ์ ๋ณด์ ๋๋ค. ๊ทธ๋์ ์ด ๊ฐ์ ๊ทธ๋๋ก ์ฑ๋ฐ ํ์ดํ๋ก ์ฌ์ฉํ๋ฉด ํ๋ฉด ์ ํ์ด ์ผ์ด๋ ๋๋ง๋ค ๊ฒฝ๋ก ์ ๋ณด๊ฐ ๋ฐ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.์ฑ๋ฐ ํ์ดํ์ ํ์ฌ ํ๋ฉด์ ์ด๋ฆ์ ๋ํ๋ด๊ธฐ ์ํด์๋, ๊ฐ๊ฐ์ ์คํฌ๋ฆฐ์์ SingleChildGoRouter ์์ ฏ์ ์ด์ฉํด GoRouter์ ๋ฑ๋ก๋ ํ์ฌ ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ์ด์ฉํด ํ์ดํ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ์ด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ๋ฉด์ด ์ ํ๋ ๋๋ง๋ค ํ์ฌ ํ๋ฉด์ ๋ง๋ ํ์ดํ์ ๋ณด์ฌ์ค ์ ์์ต๋๋ค.๋ค์์ ์์ ๋ DefaultLayout ํด๋์ค์ ์์์ ๋๋ค.class DefaultLayout extends StatelessWidget { final Widget body; const DefaultLayout({ Key? key, required this.body, }) : super(key: key); @override Widget build(BuildContext context) { final router = GoRouter.of(context); return Scaffold( appBar: AppBar( title: SingleChildGoRouter( router: router, builder: (BuildContext context, GoRouterState state) { // ํ์ฌ ๊ฒฝ๋ก์์ ๋ง์ง๋ง ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ธ์ ํ์ดํ๋ก ์ฌ์ฉ final currentLocation = state.currentLocation; final title = currentLocation.segments.last; return Text(title); }, ), ), body: Padding( padding: const EdgeInsets.symmetric( horizontal: 16.0, ), child: body, ), ); }} SingleChildGoRouter๋ฅผ ์ด์ฉํด ํ์ฌ ๊ฒฝ๋ก์ ๋ง์ง๋ง ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ธ์ ํ์ดํ๋ก ์ฌ์ฉํ๋๋ก ๊ตฌํํ์ต๋๋ค. ์ด๋ ๊ฒ ๊ตฌํํ๋ฉด ํ๋ฉด ์ ํ์ด ์ผ์ด๋ ๋๋ง๋ค ์ฑ๋ฐ ํ์ดํ์ด ์ ์ ํ๊ฒ ๋ณ๊ฒฝ๋ฉ๋๋ค.์ฐธ๊ณ ๋ก, SingleChildGoRouter๋ GoRouter ๋ด๋ถ์์ ํ์ฌ ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ์ด์ฉํด ๋์ ์ผ๋ก ์์ ฏ ํธ๋ฆฌ๋ฅผ ๊ตฌ์ฑํ ๋ ์ฌ์ฉํ๋ ์์ ฏ์ผ๋ก, ํ์ฌ ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ์ด์ฉํด ์ฑ๋ฐ ํ์ดํ ๋ฑ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
- 0
- 2
- 544
Q&A
์ฅ๊ณ (django) self.object ์์ฑ ๊ด๋ จ
self.object๋ SingleObjectMixin์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ๋ฉ์๋๋ค์ ํตํด ์ค์ ๋ฉ๋๋ค.SingleObjectMixin์ ๋จ์ผ ๊ฐ์ฒด๋ฅผ ์กฐํํ๊ณ ํ๋ฉด์ ๋ ๋๋งํ๊ธฐ ์ํ ๊ณตํต๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ฏน์ค์ธ ํด๋์ค์ ๋๋ค. SingleObjectMixin์ ์์๋ฐ์ ๋ทฐ์์๋ ๋จ์ผ ๊ฐ์ฒด๋ฅผ ์กฐํํ๊ณ , ์ด๋ฅผ get_object() ๋ฉ์๋๋ฅผ ํตํด ๋ฐํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ๋ฐํ๋ ๊ฐ์ฒด๋ self.object์ ์ ์ฅ๋ฉ๋๋ค.๋ฐ๋ผ์ get_context_data() ๋ฉ์๋์์ self.object ์์ฑ์ ์ ๊ทผํ ์ ์๋ ๊ฒ์, ์ด์ ์ get_object() ๋ฉ์๋๋ฅผ ํตํด ์กฐํํ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๊ณ ์๋ self.object ์์ฑ์ด ์๋์ผ๋ก ์ค์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. get_object() ๋ฉ์๋์์ ๋จ์ผ ๊ฐ์ฒด๋ฅผ ์กฐํํ ํ self.object์ ์ ์ฅ๋๋ฉฐ, ์ดํ get_context_data()์์ self.object ์์ฑ์ ์ ๊ทผํ๋ฉด ์กฐํํ ๋จ์ผ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- 0
- 1
- 702




