์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- ํญํด99
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- reducible
- ํ๋ ์ ๊ตฌ์กฐ
- ๋น์ฃผ๊ธฐ์ ํธ
- til
- mariadb
- ์์๋ฒํธ
- tcp ์ธ๊ทธ๋จผํธ
- i-type
- well known ํฌํธ
- ํ๋ก์ด๋์์
- xv6
- ์ค๋ ๋
- 99ํด๋ฝ
- ์ฐ๋ถํฌdb
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ฃผ๊ธฐ์ ํธ
- ๊ฐ๋ฐ์์ทจ์
- ํ ํฐ ๋ฒ์ค
- git merge
- ์ค๋ฅ์ ์ด
- ์ค๋ฅ๊ฒ์ถ
- IEEE 802
- ๋ฐ์ดํฐ ์ ์ก
- tcp ํ๋กํ ์ฝ
- ์ฝ๋ฉํ ์คํธ์ค๋น
- ์ค๋ธ์
- leetcode
- Today
- Total
๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (166)
Unfazedโ๏ธ๐ฏ
๊ธฐ๋ณธ ๋ช ๋ น์ดdocker run - '์คํํ๋ค'์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ณ ์์์: docker run nginx - Nginx ์ด๋ฏธ์ง๋ก ์ปจํ ์ด๋๋ฅผ ์คํdocker pull - '๋น๊ธฐ๋ค/๊ฐ์ ธ์ค๋ค'Docker Hub ๋๋ ๋ค๋ฅธ ๋ ์ง์คํธ๋ฆฌ์์ ์ด๋ฏธ์ง๋ฅผ ๋ก์ปฌ ์์คํ ์ผ๋ก ๋ค์ด๋ก๋์: docker pull ubuntu - Ubuntu ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋docker push - '๋ฐ๋ค/์ฌ๋ฆฌ๋ค'๋ก์ปฌ์์ ๋ง๋ ์ด๋ฏธ์ง๋ฅผ Docker Hub๋ ๋ค๋ฅธ ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ก๋์: docker push myusername/myapp - ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ๋ ์ง์คํธ๋ฆฌ์ ์ ๋ก๋docker build - '๊ตฌ์ถํ๋ค'Dockerfile์ ์ฌ์ฉํ์ฌ ์ Docker ์ด๋ฏธ์ง๋ฅผ ์์ฑ์: docker build -t myapp . - ํ์ฌ ๋๋ ..

AWS ํ๋ฆฌ ํฐ์ด ๋ง๋ฃ ํ ๋์ฒAWS ํ๋ฆฌํฐ์ด๊ฐ ๋ง๋ฃ๋์ด ์ ๊ณ์ ์ ๋ง๋ค๋ ค๋ฉด ์ ์ด๋ฉ์ผ์ด ํ์ํ๋ค๊ณ ์๊ฐํ์ง๋ง, ๊ธฐ์กด์ ์ฌ์ฉํ๋ Gmail ๊ณ์ ์ผ๋ก ๊ณ์ ๊ด๋ฆฌํ๊ณ ์ถ์๋ค. ๊ทธ๋ฌ๋ ์ค Gmail์ 'Plus Addressing' ๊ธฐ๋ฅ์ ์๊ฒ ๋์๊ณ , ์ด๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์๋ค!ํ๋ฌ์ค ์ฃผ์(plus addressing)๋?๊ธฐ์กด ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฉด์๋ ์๋ก์ด AWS ๊ณ์ ์ ๋ง๋ค ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.์ฌ์ฉ๋ฒ: ํ์ฌ ์ด๋ฉ์ผ ์ฃผ์์ "@" ๊ธฐํธ ์์ "+"์ ์ถ๊ฐ ๋ฌธ์๋ฅผ ๋ฃ์ด ์ฌ์ฉํ๋ค.์์: ์๋ ์ด๋ฉ์ผ์ด test@gmail.com์ด๋ผ๋ฉด, test+aws1@gmail.com์ผ๋ก ์ AWS ๊ณ์ ์ ์์ฑํ ์ ์๋ค.์ ๋ฐฉ๋ฒ์ ํตํด ๋์ผ gmail ๊ณ์ ์ ์ถ์๋ฌธ์๋ฅผ ๋ถ์ฌ ๊ฐ์ ํ์ฌ ๋์ผ ๋ฉ์ผ ๊ณ์ ์ผ๋ก ํ๋ฆฌ..

Java์์ ์ฐธ์กฐ๋ณ์๋ ๋จ์ํ ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ์ ์ฅํ๊ณ ์๋ค๊ณ ์๊ฐํ๊ณ ์์๋๋ฐ, ์ฐธ์กฐ๋ณ์๋ฅผ ์ถ๋ ฅํด๋ณด์์ ๋๋ ํด๋์ค๋ช @16์ง์ ํด์์ฝ๋๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ๊ณ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ฐธ์กฐ๋ณ์๊ฐ ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ธ์ง ๊ถ๊ธํด์ก๋ค.ํด๋น ๊ธ์์๋ ์ฐธ์กฐ ๋ณ์๊ฐ ๊ฐ์ฒด๋ฅผ ์ด๋ป๊ฒ ์ฐธ์กฐํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ฐธ์กฐ ๋ณ์ ์ถ๋ ฅ ์ ๋ํ๋๋ ํด์์ฝ๋์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๊ด๊ณ์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค.Java์ ์ฐธ์กฐ ๋ณ์์ฐธ์กฐ๋ณ์๋ ํ(Heap) ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ฒด์ ์ฃผ์๋ฅผ ์ ์ฅํ์ง๋ง, ๊ฐ๋ฐ์์๊ฒ ์ง์ ์ฃผ์๊ฐ์ ๋ ธ์ถํ์ง ์๋๋ค๊ณ ํ๋ค. ๋์ toString() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉด ํด๋์ค๋ช @ํด์์ฝ๋ ํ์์ ๋ฌธ์์ด์ด ๋ฐํ๋๋ค. ํด์์ฝ๋ vs ์ค์ ์ฃผ์Product@1302068a์ ๊ฐ์ ํด์์ฝ๋๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์๋ฏธํ์ง ์๋..
removeAll๊ณผ retainAll ๋ฉ์๋๋ ๋ชจ๋ ๋ด๋ถ์ ์ผ๋ก batchRemove ๋ฉ์๋๋ฅผ ํธ์ถํ๋ฉฐ, ์ ๊ฑฐ ๋ฐฉ์๋ง complement ํ๋ผ๋ฏธํฐ๋ก ๊ตฌ๋ถํ๋ค.removeAll: complement = false (์ปฌ๋ ์ ์ ์๋ ์์ ์ ๊ฑฐ)retainAll: complement = true (์ปฌ๋ ์ ์ ์๋ ์์๋ง ์ ์ง)public boolean removeAll(Collection c) { return batchRemove(c, false, 0, size);} boolean batchRemove(Collection c, boolean complement, final int from, final int end) { Objects.requireNonNull(c); final Object[] ..

Semantic Versioning(SemVer)์ ์ํํธ์จ์ด ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ฒด๊ณ์ ์ธ ๊ท์น์ผ๋ก, MAJOR.MINOR.PATCH ํ์์ผ๋ก ๋ฒ์ ์ ๊ตฌ์ฑํ๋ค. ์ด ์ฒด๊ณ๋ API๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ช ํํ ์ ๋ฌํ๋ฉฐ, Spring Boot ํ๋ ์์ํฌ์์๋ ํต์ฌ ๋ฒ์ ๊ด๋ฆฌ ์ ๋ต์ผ๋ก ์ฑํ๋์๋ค. Semantic Versioning ๊ธฐ๋ณธ ํ์MAJOR.MINOR.PATCHMAJOR ๋ฒ์ (์ฃผ ๋ฒ์ ): ๊ธฐ์กด ๊ธฐ๋ฅ๊ณผ์ ํธํ์ฑ์ ๊นจ๋จ๋ฆฌ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ ๋ ์ฆ๊ฐ(์: 1.x.x → 2.0.0)MINOR ๋ฒ์ (๋ถ ๋ฒ์ ): ํ์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๋ ์ฆ๊ฐ(์: 2.1.x → 2.2.0)PATCH ๋ฒ์ (ํจ์น ๋ฒ์ ): ๋ฒ๊ทธ ์์ ๋ฑ ๊ธฐ๋ฅ ๋ณ๊ฒฝ ์์ด ๋ด๋ถ ๊ฐ์ ์ด ์์ ๋ ์ฆ๊ฐ(์: 2.2.0 → 2...
API๋ฅผ ์ค๊ณํ ๋, ์ฌ์ฉ์๊ฐ ๋ฉ์๋ ์๊ทธ๋์ฒ๋ง ๋ณด๊ณ ๋ ๋ฐํ๊ฐ์ด ์ ํํ์ธ์ง, ์ฆ ๊ฐ์ด ์กด์ฌํ์ง ์์ ์ ์์์ ์ฝ๊ฒ ์ธ์งํ ์ ์๋ค๋ฉด ํจ์ฌ ์์ ํ๊ณ ๋ช ๋ฃํ API๋ฅผ ์ ๊ณตํ ์ ์์ ๊ฒ์ด๋ค. ์ด ๊ธ์์๋ Java 8๋ถํฐ ๋์ ๋ Optional ํด๋์ค๋ฅผ ํ์ฉํด API ์ค๊ณ์ ๋ช ํ์ฑ์ ๋์ด๊ณ , NullPointerException๊ณผ ๊ฐ์ ์ค๋ฅ๋ฅผ ์๋ฐฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋ ค ํ๋ค.1. Optional์ ๊ธฐ๋ณธ ๊ฐ๋ public final class Optionalextends ObjectA container object which may or may not contain a non-null value. - ๊ณต์ ๋ฌธ์ ์ ์Java 8 ๋ถํฐ ๋์ ๋ Optional๋ null์ด ๋ ์ ์๋ ๊ฐ์ ๊ฐ์ธ๋ ๋ํผ(wrapp..
Collection ์ธํฐํ์ด์ค์ add ๋ฉ์๋๋ ์ปฌ๋ ์ ์ ํน์ ์์๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํ ๋ฉ์๋์ด๋ค.์ฃผ์ ํน์ง๋ฐํ ๊ฐ: ์ปฌ๋ ์ ์ด ์ด ํธ์ถ๋ก ์ธํด ๋ณ๊ฒฝ๋๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค.์ค๋ณต ์ฒ๋ฆฌ: ์ค๋ณต์ ํ์ฉํ์ง ์๋ ์ปฌ๋ ์ (์: Set)์์ ์ด๋ฏธ ํด๋น ์์๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ false๋ฅผ ๋ฐํํ๋ค.์ ์ฝ ์ฌํญ: ์ปฌ๋ ์ ์ ์ถ๊ฐํ ์ ์๋ ์์์ ์ ํ์ ๋ ์ ์์ต๋๋ค:null ์์ ๊ฑฐ๋ถํน์ ํ์ ์ ์์๋ง ํ์ฉ์์ธ ์ฒ๋ฆฌ: ์ปฌ๋ ์ ์ด ์ด๋ฏธ ์์๋ฅผ ํฌํจํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ค๋ฅธ ์ด์ ๋ก ์์ ์ถ๊ฐ๋ฅผ ๊ฑฐ๋ถํ๋ ๊ฒฝ์ฐ, false๋ฅผ ๋ฐํํ๋ ๋์ ์์ธ๋ฅผ ๋ฐ์์์ผ์ผ ํ๋ค.boolean ํ์ ์ ๋ฐํํ๋ ์ด์ ์ปฌ๋ ์ ๋ณ๊ฒฝ ์ฌ๋ถ ํ์ธ: ๋ฉ์๋ ํธ์ถ๋ก ์ปฌ๋ ์ ์ด ์ค์ ๋ก ๋ณ๊ฒฝ๋์๋์ง ์ฌ๋ถ๋ฅผ ์๋ ค์ค๋ค.์ค๋ณต ํ์ธ ๋ฉ์ปค๋..
@PathVariable๋ชฉ์ : URI ๊ฒฝ๋ก์ ๋ณ์ ๊ฐ์ ์ถ์ถํ ๋ ์ฌ์ฉ์์: /users/{userId} → userId ํ๋ผ๋ฏธํฐ ์ถ์ถํน์ง:URL์ ๊ฒฝ๋ก ์ผ๋ถ๋ก ์ฌ์ฉ๋๋ฉฐ ํ์๊ฐ์ผ๋ก ์ฒ๋ฆฌ๋จRESTful ๋ฆฌ์์ค ์๋ณ์ ์ ํฉ (์: ํน์ ์ฌ์ฉ์ ์กฐํ)@GetMapping("/users/{userId}")public User getUser(@PathVariable String userId) { //} @RequestParam๋ชฉ์ : ์ฟผ๋ฆฌ ์คํธ๋ง(?key=value)์ ํ๋ผ๋ฏธํฐ ์ถ์ถ์์: /users?role=admin → role ๊ฐ ์ถ์ถํน์ง:์ ํ์ ํ๋ผ๋ฏธํฐ ์ฒ๋ฆฌ ๊ฐ๋ฅ (required=false)ํํฐ๋ง, ์ ๋ ฌ, ํ์ด์ง ๋ฑ ๋ถ๊ฐ ๊ธฐ๋ฅ์ ์ ํฉ@GetMapping("/users")public List getU..
JDBC๋ 1996๋ JDK 1.1์ ๊ณต์ ๋์ ๋ Java์ ํ์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ API๋ก, ๊ฐ๋ฐ์๋ค์ด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ ์ ์๋ ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๊ธฐ ์ํด ์ค๊ณ๋์๋ค. ๊ทธ๋ฌ๋ ๋ฐ๋ณต์ ์ธ ์ฝ๋ ์์ฑ๊ณผ ์๋ ๋ฆฌ์์ค ๊ด๋ฆฌ๊ฐ ํ์ํด ๊ฐ๋ฐ ์์ฐ์ฑ์ด ๋ฎ๋ค๋ ํ๊ณ๊ฐ ์์๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด SQL Mapper์ ORM ๊ธฐ์ ์ด ๋ฐ์ ํ๊ฒ ๋์๋ค. JDBC ๋๋ผ์ด๋ฒ๋?JDBC ๋๋ผ์ด๋ฒ๋ Java ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค(DBMS) ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํด ์ฃผ๋ ์ํํธ์จ์ด ๊ตฌํ์ฒด์ด๋ค. ์๋ฐ์์ ์ ๊ณตํ๋ JDBC API๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ ํ๊ธฐ ์ํ ํ์ค ์ธํฐํ์ด์ค๋ง ์ ์ํ ๋ฟ, ์ค์ DB ์๋ฒ์ ์ฃผ๊ณ ๋ฐ๋ ํ๋กํ ์ฝ์ ๋๋ผ์ด๋ฒ๊ฐ ์ฒ๋ฆฌํ๋ค. ๋๋ผ์ด๋ฒ์ ์ฃผ์ ์ญํ JDBC API ํธ์ถ(์: Connection, ..
1. HTTP ์์ฒญ ์ฒ๋ฆฌ ํ๋ฆa) ์ ์ ์ํ(Closed)ํด๋ผ์ด์ธํธ → ์ปจํธ๋กค๋ฌ → ์๋น์ค → ์ธ๋ถ API ํธ์ถ → ์๋ต ๋ฐํ๋ชจ๋ ์์ฒญ์ด ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด ์๋น์ค ๋ก์ง๊น์ง ์ ์์ ์ผ๋ก ์ ๋ฌ๋๋ค.b) Open ์ํ (Resilience4J)ํด๋ผ์ด์ธํธ → ์ปจํธ๋กค๋ฌ → ์ํท ๋ธ๋ ์ด์ปค(Open) → Fallback ์๋ต ์ฆ์ ๋ฐํ (์ธ๋ถ API ํธ์ถ ๋ฏธ๋ฐ์)์์ฒญ์ ์ปจํธ๋กค๋ฌ ์๋ํฌ์ธํธ์ ๋๋ฌํ์ง๋ง, ์ํท ๋ธ๋ ์ด์ปค๊ฐ ์ค์ ๋น์ฆ๋์ค ๋ก์ง ์คํ์ ์ฐจ๋จํ๋ค.์ธ๋ถ API ํธ์ถ ์์ด Fallback ๋ฉ์๋์์ ์ง์ ์๋ต ์์ฑ (์: 503 ์๋ฌ)2. ์ปจํธ๋กค๋ฌ ๊ณ์ธต ์ํฅ ๋ถ์๊ตฌ๋ถ์์ฒญ ๋๋ฌ ์ฌ๋ถ์ธ๋ถ API ํธ์ถ ์ฌ๋ถClosedโ โ Openโ โHalf-Openโ โ ๏ธ (์ ํ์ ํ์ฉ)์ปจํธ๋กค๋ฌ ์ง์ ๋ก๊ทธ: ์์ฒญ์ ํญ์ ๊ธฐ๋ก๋จ (HTTP ์..