Java/Spring 26

[Spring] ์Šคํ”„๋ง์˜ ์ •์„ (3) - Spring MVC

http์˜ ์š”์ฒญ๊ณผ ์‘๋‹ต ํ”„๋กœํ† ์ฝœ(Protocol)์„œ๋กœ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•œ ์•ฝ์† ๋˜๋Š” ๊ทœ์น™. ์ฃผ๊ณ  ๋ฐ›์„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํ˜•์‹์„ ์ •์˜ํ•œ ๊ฒƒ. ๋ณ„๋‹ค๋ฅธ ์„ค๋ช… ์—†์ด๋„ ๊ทœ์น™์„ ์ •ํ•ด๋†“๊ณ  ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์–ด๋–ค ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์•Œ์•„๋“ค์„ ์ˆ˜ ์žˆ๋„๋ก ํ•จ.  HTTP(Hyper Text Transfer Protocal)ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ํ”„๋กœํ† ์ฝœ. ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค.(๋ฌด์ƒํƒœ. stateless) ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†๋‹ค.(๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด๋„ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†์Œ. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•œ๋‹ค.) ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. (์ปค์Šคํ…€ ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์•ฝ์†๋งŒ ๋œ๋‹ค๋ฉด ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.) ์š”์ฒญ์š”์ฒญ ๋ฌธ์„œ๋Š” ํ—ค๋”์™€ ๋ฐ”๋””๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ํ—ค๋”์—๋Š” ๋ณธ๋ฌธ์— ..

Java/Spring 2024.01.01

[Spring] ์Šคํ”„๋ง์˜ ์ •์„ (2) - ์š”์ฒญ๊ณผ ์‘๋‹ต

main ๋ฉ”์„œ๋“œ๋Š” static ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด๋„ main ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋กœ์ปฌ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์€ main ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๋งŒ์œผ๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋–ป๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์„๊นŒ?์›๊ฒฉ ํ”„๋กœ๊ทธ๋žจ์€ ์›น ๋ธŒ๋ผ์šฐ์ €์™€ WAS๊ฐ€ ์žˆ์–ด์•ผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. url์— ์ปดํ“จํ„ฐ ์ฃผ์†Œ์™€ ํฌํŠธ๋ฅผ ๋„ฃ์œผ๋ฉด WAS๊ฐ€ ํฌํŠธ๋ฅผ ๋ฐ›์•„ ์„œ๋ฒ„์— ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ด์ค€๋‹ค. => AWS์˜ ์ธ์Šคํ„ด์Šค์— Tomcat์„ ์‹คํ–‰์‹œ์ผœ๋†“๊ณ , ๋‚ด ์ปดํ“จํ„ฐ์—์˜ ๋ธŒ๋ผ์šฐ์ € url์— ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์˜ ip๊ณผ tomcat ํฌํŠธ ๋ฒˆํ˜ธ์ธ :8080์„ ๋’ค์— ๋ถ™์—ฌ ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์—ด ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ!  `@Controller` ํด๋ž˜์Šค๋ฅผ ์›๊ฒฉ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•œ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋“ฑ๋ก`@RequestMapping`  url๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฐ๊ฒฐ..

Java/Spring 2023.12.31

[Spring] ์Šคํ”„๋ง์˜ ์ •์„ (1) ์ดˆ๊ธฐ ์„ค์ •

`rm` ์ง€์šฐ๊ธฐ `ref` rm ์‚ฌ์šฉ์‹œ ํŒŒ์ผ ์ด๋ฆ„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Œ`sudo` ๊ด€๋ฆฌ์ž ๊ถŒํ•œ`ls` ํ˜„์žฌ ๊ฒฝ๋กœ์— ์žˆ๋Š” ํŒŒ์ผ ์ถœ๋ ฅ`pwd` ํ˜„์žฌ ๊ฒฝ๋กœ ์ถœ๋ ฅ ํ†ฐ์บฃ ์‚ฌ์šฉ ์‹œ ์ž๋ฐ”๊ฐ€ ์–ด๋А ๊ฒฝ๋กœ์— ์žˆ๋Š”์ง€ ์•Œ์•„์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— JAVA_HOME์œผ๋กœ jdk๊ฐ€ ๋‹ค์šด๋กœ๋“œ ๋˜์–ด์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์–ด์ค€๋‹ค.ํ†ฐ์บฃ ์‹คํ–‰ zsh๊ฐ€ ๊น”๋ ค์žˆ์œผ๋ฏ€๋กœ ํ†ฐ์บฃ ์„ค์น˜๋œ ๊ฒฝ๋กœ๋กœ ๊ฐ€์„œ ๋‹ค์Œ ๋ช…๋ น์–ด ์‹คํ–‰./startup.sh  ์ข…๋ฃŒ ๋ช…๋ น์–ด์•„๋‹ˆ๋ฉด ํ„ฐ๋ฏธ๋„ ์ฐฝ ๋‹ซ์•„๋„ ๋จ./shutdown.sh   STS ์‹คํ–‰ ์‹œ์— ์‹คํ–‰ ๋Œ€๊ธฐ ์ด๋ฏธ์ง€๊ฐ€ ๋’ค์ง‘ํ˜€์„œ ๋‚˜์˜ค๋Š”๋ฐ ์ด๊ฑฐ ๊ดœ์ฐฎ์€๊ฑด๊ฐ€? ใ…‹ใ…‹ใ…‹ใ…‹   ํŒŒ์ผ -  ์Šคํ”„๋ง ๋ ˆ๊ฑฐ์‹œํ•˜๊ณ  ํƒฌํ”Œ๋ฆฟ ์„ ํƒํ•ด์•ผ ํ•˜๋Š”๋ฐ ์—†์œผ๋ฉด configure template ๋“ค์–ด๊ฐ€์„œ ๋””ํดํŠธ ๋นผ๊ณ  ๋‹ค ์ง€์šฐ๋ฉด ๋จ  ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ์ •ํ•˜๋Š” ๊ฑฐ๋‹ค.com.fastca..

Java/Spring 2023.12.30

[Spring] ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ ๊ธฐ๋ณธํŽธ (3)

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์‹ฑ๊ธ€ํ†ค ์Šคํ”„๋ง์€ ๊ธฐ์—…์šฉ ์˜จ๋ผ์ธ ์„œ๋น„์Šค ๊ธฐ์ˆ ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํƒ„์ƒํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋Œ€๋ถ€๋ถ„์˜ ์Šคํ”„๋ง ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ณดํ†ต ์—ฌ๋Ÿฌ ๊ณ ๊ฐ์ด ๋™์‹œ์— ์š”์ฒญ์„ ํ•œ๋‹ค. Configurationpublic class AppConfig { @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public OrderServ..

Java/Spring 2023.12.28

[Spring] ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ ๊ธฐ๋ณธํŽธ (2)

๊ธฐ์กด์˜ ์ฝ”๋“œ๋ฅผ ์Šคํ”„๋ง์œผ๋กœ ์ „ํ™˜ํ•œ๋‹ค. @Configurationpublic class AppConfig { @Bean public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy())..

Java/Spring 2023.12.27

[Spring] ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ ๊ธฐ๋ณธํŽธ (1)

https://start.spring.io/ ์—์„œ ์‹œ์ž‘ ํŒŒ์ผ ์ƒ์„ฑ(dependency X)์ž๋ฐ” 21๋กœ ํ•˜๋ฉด ์˜ค๋ฅ˜๋‚˜๋‹ˆ๊นŒ 17๋กœ~!!  setting - gradle - gradle prijects - build and run ์ธํ…”๋ฆฌ์ œ์ด๋กœ ๋ฐ”๊พธ๊ธฐ(gradleํ†ตํ•ด์„œ ์‹คํ–‰ํ•˜๋ฉด ๋А๋ฆผ) ๋‹จ์ถ•ํ‚ค ํ™•์ธsetting - keymap ์‹ค๋ฌด์—์„œ๋Š” ๊ทธ๋ƒฅ ํ•ด์‹œ๋งต๋Œ€์‹  `concurrentHashMap`์„ ์‚ฌ์šฉํ•œ๋‹ค (๋™์‹œ์„ฑ ์ด์Šˆ) ์ธํ…”๋ฆฌ์ œ์ด ๋‹จ์ถ•ํ‚ค command shft enter (๋ฌธ์žฅ ์ž๋™์™„์„ฑ ๋‹จ์ถ•ํ‚ค)command + option + V (์ฐธ์กฐ๋ณ€์ˆ˜ ์ž๋™์ƒ์„ฑ)option + Enter (์ž„ํฌํŠธ ๋“ฑ ์˜ค๋ฅ˜๋‚œ ๊ณณ์œผ๋กœ ์ด๋™)command + shifh + T (ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ)command + E + Enter (์ด์ „ ์ฐฝ์œผ๋กœ ๋Œ์•„..

Java/Spring 2023.12.27