์ค๋ ๋๋ ์คํ๋๊ธฐ ์ํ์ ์คํ ์ํ๋ฅผ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์์ ์ run() ๋ฉ์๋๋ฅผ ์กฐ๊ธ์ฉ ์คํํฉ๋๋ค. ๊ทธ ํ ๋์ด์ ์คํํ ์ฝ๋๊ฐ ์์ ๋ ์ข
๋ฃ ์ํ๊ฐ ๋ฉ๋๋ค. ์ค๋ ๋ ๊ฐ์ฒด ์์ฑ -> start() -> ์คํ๋๊ธฐ(์ค์ผ์ค๋ง์ผ๋ก ์ธํด) ์คํ -> ์ข
๋ฃ - ์ค๋ ๋ ์ค์ผ์ค๋ง์ผ๋ก ์ ํ๋ ์ค๋ ๋๊ฐ cpu๋ฅผ ์ ์ ํ๊ณ run() ๋ฉ์๋๋ฅผ ์คํํ๋ค (์คํ ์ํ) - ์ค๋ ๋ ์ค์ผ์ค๋ง์ ์ํด ๋ค์ ์คํ๋๊ธฐ ์ํ๋ก ๋์๊ฐ ์ ์๋ค.(์คํ๋๊ธฐ ์ํ) ์ด๋ป๊ฒ ์ ์ดํ ๊น? 1. ์ฃผ์ด์ง ์๊ฐ๋์ ์ผ์ ์ ์ง sleep() ์คํ ์ค์ธ ์ค๋ ๋๋ฅผ ์ผ์ ์๊ฐ ๋ฉ์ถ ์ ์๊ฒ ํ๋ค. Thread ํด๋์ค์ ์ ์ ๋ฉ์๋์ธ sleep() ์ ์ฌ์ฉํ๋ค. Thread.sleep(1000) // 1์ด -> ๋ฐ๋ฆฌ์ธ์ปจ๋ (1/1000) ๋จ์ * ์ฃผ์ด์ง ์๊ฐ์ด ๋๊ธฐ์ ..
๐ WEB/JAVA
๋๊ธฐํ ๋ฉ์๋์ ๋๊ธฐํ ๋ธ๋ก ๋ฉํฐ์ค๋ ๋ ํ๋ก๊ทธ๋จ์์๋ ์ค๋ ๋๋ค์ด ๊ฐ์ฒด๋ฅผ ๊ณต์ ํด์ ์์
ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ค๋ ๋a๊ฐ ์ฌ์ฉํ๋ ๊ฐ์ฒด๋ฅผ b์ ์ํด ์ํ๊ฐ ๋ณ๊ฒฝ ๋ ์ ์์ด์ a๊ฐ ์๋ํ๋ ๊ฒฐ๊ณผ์ ๋ฌ๋ผ์ง ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ค์ธ ์ค๋ ๋์ ์์
์ด ๋๋ ๋๊น์ง ๊ฐ์ฒด์ ์ ๊ธ์ ๊ฑธ์ด ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์ฌ์ฉํ ์ ์๋๋ก ํด์ผ ํ๋ค. ๋จ ํ๋์ ์ค๋ ๋๋ฅผ ์คํํ๋ ์๊ณ ์์ญ์ ๋ง๋ค์ด์ฃผ๋ฉด ๋๋ค. -> ์ค๋ ๋๊ฐ ๊ฐ์ฑ ๋ด๋ถ์ ๋๊ธฐํ ๋ฉ์๋ ๋๋ ๋ธ๋ก์ ๋ค์ด๊ฐ๋ฉด ์ฆ์ ๊ฐ์ฒด์ ์ ๊ธ์ ๊ฑธ์ด ๋ค๋ฅธ ์ค๋ ๋๊ฐ ์์ญ์ ์๋ ์ฝ๋๋ฅผ ์คํํ์ง ๋ชปํ๋๋ก ํ๋ค. ๋ฉ์๋ ์คํ ์ข
๋ฃ ๋๋ฉด ์ ๊ธ์ด ํ๋ฆฐ๋ค. ์ฌ์ฉ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค public synchronized void method(){ // ์๊ณ ์์ญ } ์ผ๋ถ ๋ด์ฉ๋ง ๋ง๋ค๊ณ ์ถ๋ค๋ฉด ์๋์ ๊ฐ์ด ๋ธ..
๋ฉํฐ ํ๋ก์ธ์ค๊ฐ ์ ํ๋ฆฌ์ผ์ด์
๋จ์์ ๋ฉํฐ ํ์คํน์ด๋ผ๋ฉด ๋ฉํฐ ์ค๋ ๋๋ ์ ํ๋ฆฌ์ผ์ด์
๋ด๋ถ์์์ ๋ฉํฐ ํ์คํน์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. ๋ฉํฐ ์ค๋ ๋๋ ๋ค์ํ ๊ณณ์์ ์ฌ์ฉ๋๋ค. 1. ๋์ฉ๋ ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ ์๊ฐ์ ์ค์ด๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋ถํ ํด์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๋ ๊ณณ์์ ์ฌ์ฉ 2. UI๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ ํ๋ฆฌ์ผ์ด์
์์ ๋คํธ์ํฌ ํต์ ์ ํ๊ธฐ ์ํด ์ฌ์ฉ 3. ๋ค์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์๋ฒ๋ฅผ ๊ฐ๋ฐํ ๋ - ๋ฉ์ธ ์ค๋ ๋ ๋ฉ์ธ ์ค๋ ๋๊ฐ ์์
์ค๋ ๋๋ณด๋ค ๋จผ์ ์ข
๋ฃ๋๋๋ผ๋ ์์
์ค๋ ๋๊ฐ ๊ณ์ ์คํ ์ค์ด๋ฉด ํ๋ก์ธ์ค๋ ์ข
๋ฃ๋์ง ์๋๋ค. - ์์
์ค๋ ๋ ๋ช ๊ฐ์ ์์
์ ๋ณ๋ ฌ๋ก ์คํํ ์ง ๊ฒฐ์ ํ๊ณ ๊ฐ ์์
๋ณ๋ก ์ค๋ ๋๋ฅผ ์์ฑํ๋ค. (์์
1) (์์
2) (ํ๋ก๊ทธ๋จ์์ ๋ณ๋ ฌ๋ก ์คํํ ์์
์ ๊ฒฐ์ ) -> ๋ฉ์ธ์ค๋ ๋ ์ค๋ ๋1 ์ค๋ ๋2 Threadํด..
์ธํ๋ฐ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์
๋ฌธ - ์ต๋ฒ๊ท ๋ฅผ ๊ณต๋ถํ๋ฉฐ ์ ์ํ๊ธฐ ๋
ธํธ์
๋๋ค. ์ง์ ์ค์ ์์ Java๋ฅผ ์ฐ๊ฒ ๋๋ฉด์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ค์์ฑ์ด ๋ผ๋ฅผ ๊ฐํํ๋ค... ๊ณต๋ถํ์! "Software maintenance is not keep it working like before it is keep being useful in a changing world" - Jessica Kerr ์ ์ง๋ณด์๋ ๊ทธ๋๋ก๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์๋๋ผ ์ ์ฉํ๊ฒ ๋ณ๊ฒฝํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ถ์๊ณผ ์์ ์ด ๋น ๋ฅด๊ฒ ๋์ด์ผ ํ๋ค. ๋น์ฉ๊ณผ ๋ณํ ๋ฎ์ ๋น์ฉ์ผ๋ก ๋ณํํ ์ ์์ด์ผ ํ๋ค. 1. ํจ๋ฌ๋ค์ ๊ฐ์ฒด ์งํฅ, ํจ์ํ, ๋ฆฌ์กํฐ๋ธ ๋ฑ 2. ์ฝ๋, ์ค๊ณ, ์ํคํ
์ฒ DRY, TDD, SOLID, DDD, ... ํด๋ฆฐ ์ํคํ
์ฒ, MSA, ... 3. ..
์ด๋ฒ์ ์คํํธ์
์ ์ทจ์
ํ๋ฉด์ ๋ง์ ๊ฑธ ๋ฐฐ์ฐ๋ ๋์์ ๋ง์ ๊ฒ ์ซ์ด์ก๋ค. ํ์ง๋ง ๋ฒํฐ๊ณ ๋๋ฉด ์ถ์ต์ด๊ณ ๋์ ๊ฒฝ๋ ฅ์ด ๋๊ฒ ์ง ... ใ
๊ฟป ์ฐ์ ์ฒ์ ํ๋ก์ ํธ๋ฅผ ๋ค์ด๊ฐ์ ์ฒ์์ผ๋ก ์ฌ์ฉํด ๋ดค๋ค. ํ์์์ ๋ง์ด ์ฌ์ฉํ์ง ์๋๋ค๊ณ ๋ฐฐ์ ์ง๋ง ์ด๋ฒ์ ์ฌ์ฉํ๋ฉด์ ๊ฐ๋
์ฑ๋ฉด์์ ๋งค์ฐ ์ข๋ค๊ณ ๋๊ผ๊ธฐ ๋๋ฌธ์ ๋์ค์ ์ํด ์ ๋ฆฌํ๋ค! Spring Boot ์์ api ์ค๊ณ ์ค ๋ฐฐ์ก ๊ธฐ๋ฅ์ ๋ง๋ค๋ฉด์ ๋ฐฐ์ก์ํ ๊ด๋ฆฌ๋ฅผ ํ๋๋ฐ 1,2,3... ๋ฑ ์ซ์๋ก ํํ๋์ด 1์ด ๋ฌด์์ธ์ง 2๊ฐ ๋ฌด์์ธ์ง ์ผ์ผ์ด ์ฐพ์๋ณด๊ธฐ ๋ฒ๊ฑฐ๋ก์ ๋ค. ๋ํ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ ์ด๋ค ๊ฑด์ง ํท๊ฐ๋ฆด ๊ฑฐ ๊ฐ์ Enumํ์
์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. @Getter public enum SomethingStatus { PAYMENT_COMPLETE(0), PREPARING(1), CANCEL(..
๊ธฐ๋ณธํ์
/ ์ฐธ์กฐํ์
์ผ๋ก ๋๋ฉ๋๋ค. (immutable / mutable) ๊ธฐ๋ณธํ์
์ ์ ์, ์ค์, ๋ฌธ์, ๋
ผ๋ฆฌ ๋ฆฌํฐ๋ด์ ์ ์ฅํ๋ ํ์
์
๋๋ค. ์ข
๋ฅ ๊ธฐ๋ณธํ์
๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ณธ๊ฐ ์ ์ byte 8bit 1byte 0 char 16bit 2byte ์ ๋์ฝ๋(\u0000), ASCII, ๋ฌธ์ํ short 16bit (2byte) 0 int 32bit (4byte) 0 long 64bit (8byte) 0 ์ค์ (๋ถ๋ ์์์ ) float 32bit (4byte) 0.0F double 8bit (1byte) 0.0 ๋
ผ๋ฆฌ boolean 8bit (1byte) false ๋ฉ๋ชจ๋ฆฌ์๋ 0๊ณผ 1์ ์ ์ฅํ๋ ์ต์ ๊ธฐ์ต ๋จ์์ธ bit๊ฐ ์์ต๋๋ค. ์ด bit 8๊ฐ๋ฅผ ๋ฌถ์ผ๋ฉด byte๊ฐ ๋ฉ๋๋ค. ์ด byte๊ฐ ํด์๋ก ํํํ๋ ๊ฐ์ผ ๋ฒ..
Enum์ ํตํด ์ป๋ ๊ธฐ๋ณธ์ ์ธ ์ฅ์ ๋ฌธ์์ด๊ณผ ๋น๊ตํด, IDE์ ์ง์์ ๋ฐ์ ์ ์๋ค. ์๋์์ฑ, ์คํ๊ฒ์ฆ, ํ
์คํธ ๋ฆฌํฉํ ๋ง ๋ฑ ํ์ฉ ๊ฐ๋ฅํ ๊ฐ๋ค์ ์ ํํ ์ ์๋ค. ๋ฆฌํฉํ ๋ง์ ๋ณ๊ฒฝ ๋ฒ์๊ฐ ์ต์ํ ๋๋ค. ๋ด์ฉ์ ์ถ๊ฐ๊ฐ ํ์ํด๋, Enum์ฝ๋์ธ์ ์์ ํ ํ์๊ฐ ์๋ค. Java Enum์ธ ๊ฒฝ์ฐ int๊ฐ์ด ์๋๋ผ ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ง ํด๋์ค์ด๋ค! ์ฐ์ enumํ์
์ผ๋ก ํด๋์ค๋ฅผ ์์ฑํด์ผํ๋ค ์ด์ ์์๋ฅผ ์ ์ธํ๋ฉด ๋๋๋ฐ, ๊ด๋ก์ ์ผ๋ก ๋ชจ๋ ๋๋ฌธ์๋ก ์์ฑํ๋ค. Entityํด๋์ค์ ์ ์ธํด์ฃผ๊ธฐ ์ํด์ String์ด ์๋ enum์ ์ ์ธํ๋ค. JPA๋ฅผ ์ฌ์ฉํ๋ฏ๋ก @Enumerated(EnumType.SPRING)์ ์ ์ธํ๋ฉด Enumํ๋๊ฐ ํ
์ด๋ธ์ ์ ์ฅ์ ์ซ์ํ์ด ์๋, Enum์ ์ด๋ฆ์ด ์ ์ฅ๋๋ค. ์ฌ๊ธฐ์๋ GUEST,USER..
//postRepository์์ ๋์ด์จ ๊ฒฐ๊ณผ๋ฅผ postsRepository.findAllDesc().stream() //Stream์ ํตํด map์ผ๋ก new PostsListResponseDto ์ ๋งคํ ํด์ค๋ค. //PostsListResponseDto์์๋ ํ๋ผ๋ฏธํฐ๋ก postRepository์์ ๋์ด์จ ๊ฒฐ๊ณผ Entity posts๋ฅผ ๋ฐ๊ณ ์์ผ๋ฏ๋ก //๊ฒฐ๊ณผ์ ์ผ๋ก .map(posts -> new PostsListResponseDto(posts)) .map(PostsListResponseDto::new) //collect๋ฅผ ์ฌ์ฉํด์ List๋ก ๋ณํํ๋ค. .collect(Collectors.toList()); stream์ด๋ผ๋ ๊ฒ ์๋ ๊ฒ ์กฐ์ฐจ ๋ชฐ๋ผ์ ๊ณต๋ถํ๋ฉด์ ํผ๋์ค๋ฌ์ ๋ค ๋๋ค์์ ๋ฐฐ์ด ์ ์ด ์์ผ๋. ใ
..