[Spring][ํ˜ผ๊ณต] 4. ์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ - (2) ์ง์ ‘ ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋กํ•˜๊ธฐ
ยท
๐Ÿ“ Language/โœ JAVA
์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ 2. ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ง์ ‘ ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋กํ•˜๊ธฐ 1) ๊ตฌํ˜„ ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ์Šคํ”„๋งํ•œํ…Œ ์ง์ ‘ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. @Service, @Repository, @Autowired ์• ๋…ธํ…Œ์ด์…˜์„ ์ œ๊ฑฐํ•˜๊ณ  ์ง„ํ–‰ํ•œ๋‹ค. ํ–ฅํ›„ ๋ฉ”๋ชจ๋ฆฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•  ์˜ˆ์ •์ด๋ฏ€๋กœ, ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ๋ฐฉ์‹ ๋Œ€์‹  ์ง์ ‘ ์„ค์ •ํ•  ๊ฒƒ์ด๋‹ค. package hello.hello.spring; import hello.hello.spring.repository.MemberRepository; import hello.hello.spring.repository.MemoryMemberRepository; import hello.hello.spring.service.MemberService; import org.springfra..
[Spring][ํ˜ผ๊ณต] 4. ์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ - (1) ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ •
ยท
๐Ÿ“ Language/โœ JAVA
์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ ์ง€๊ธˆ๊นŒ์ง€ ํšŒ์› ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ํšŒ์› ๊ฐ€์ž…๊ณผ ์กฐํšŒ๋ฅผ ํ•˜์—ฌ ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ๋‹ค์‹œ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ๋กœ์ง์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์ด์   ์›น์— ๋ณด์ด๋„๋ก ํ™”๋ฉด์— ๋„์›Œ์•ผ ํ•˜๋Š”๋ฐ, ์ด ์ž‘์—…์„ ์œ„ํ•ด์„  Controller์™€ View๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ ํšŒ์› ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํšŒ์› ์„œ๋น„์Šค๋ฅผ ํ†ตํ•ด ํšŒ์› ๊ฐ€์ž…๊ณผ ๋ฐ์ดํ„ฐ ์กฐํšŒ๋ฅผ ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ด€๊ณ„๋ฅผ ์„œ๋กœ ์˜์กด๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋Š”๋ฐ, ์ฆ‰ ํšŒ์› ์ปจํŠธ๋กค๋Ÿฌ๋Š” ํšŒ์› ์„œ๋น„์Šค๋ฅผ ์˜์กดํ•˜๊ณ  ์žˆ๋‹ค. ํšŒ์› ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํšŒ์› ์„œ๋น„์Šค์™€ ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์˜์กด๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•ด๋ณด์ž. ์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•˜๊ณ  ์˜์กด๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ • ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ง์ ‘ ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋กํ•˜๊ธฐ ์Šคํ”„๋ง ๋นˆ(Spring Bean) Spring IOC ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ด€๋ฆฌํ•˜๋Š” ์ž..
[Spring][ํ˜ผ๊ณต] 4. ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ - (4) ํšŒ์› ์„œ๋น„์Šค ๊ฐœ๋ฐœ
ยท
๐Ÿ“ Language/โœ JAVA
ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ 4. ํšŒ์› ์„œ๋น„์Šค ๊ฐœ๋ฐœ 1) ํšŒ์› ์„œ๋น„์Šค ๋งŒ๋“ค๊ธฐ service ํŒจํ‚ค์ง€ ์ƒ์„ฑ MemberService ํด๋ž˜์Šค ์ƒ์„ฑ ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋„๋ฉ”์ธ์„ ํ™œ์šฉํ•˜์—ฌ ์‹ค์ œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๋‹ค. ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐœ๋ฐœ์ž ์นœํ™”์ ์ธ ์ด๋ฆ„์œผ๋กœ ๊ตฌํ˜„ํ•˜์ง€๋งŒ, ํšŒ์› ์„œ๋น„์Šค๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์นœํ™”์ ์ธ ์ด๋ฆ„์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค. package hello.hello.spring.service; import hello.hello.spring.domain.Member; import hello.hello.spring.repository.MemberRepository; import hello.hello.spring.repository.MemoryMemberRepository; import java.util.List; impo..
[C++] ์Šค์œ„ํ•‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Sweeping Algorithm)
ยท
๐Ÿ“ Computer Science/โœ Algorithm
์Šค์œ„ํ•‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Sweeping Algorithm)๊ณต๊ฐ„์ด๋‚˜ ์ง์„  ์ƒ์—์„œ ํ•œ์ชฝ ์‹œ์ž‘์ ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ˜๋Œ€ํŽธ ์ข…๋ฃŒ ์ง€์ ๊นŒ์ง€ ์ง€๋‚˜๊ฐ€๋Š”๋ฐ, ๋งˆ์ฃผ์น˜๋Š” ์š”์†Œ๋“ค์— ๋Œ€ํ•ด ํŒ๋‹จ์ด ๋˜๋Š” ๊ธฐ์ค€์„ ์ ์šฉํ•ด ์ •๋‹ต์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.์ฆ‰, ์ •๋ ฌ๋œ ์š”์†Œ๋“ค์„ ํ•œ ๋ฒˆ๋งŒ ์ˆœํšŒํ•˜๋ฉฐ ์—ฐ์‚ฐํ•˜๋ฉด ์ •๋‹ต์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ๋ฌธ์ œ https://www.acmicpc.net/problem/2261 2261๋ฒˆ: ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋‘ ์ ์ฒซ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ n(2 ≤ n ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ n๊ฐœ์˜ ์ค„์—๋Š” ์ฐจ๋ก€๋กœ ๊ฐ ์ ์˜ x, y์ขŒํ‘œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ๊ฐ์˜ ์ขŒํ‘œ๋Š” ์ ˆ๋Œ“๊ฐ’์ด 10,000์„ ๋„˜์ง€ ์•Š๋Š” ์ •์ˆ˜์ด๋‹ค. ์—ฌ๋Ÿฌ ์ ์ด ๊ฐ™์€ ์ขŒํ‘œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜๋„www.acmicpc.net#include #include #include #include #include using na..
[Spring][ํ˜ผ๊ณต] 4. ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ - (3) ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ
ยท
๐Ÿ“ Language/โœ JAVA
ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ 3. ํšŒ์› ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ ๊ฐœ๋ฐœํ•œ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•ด์„œ ํ…Œ์ŠคํŠธํ•  ๋•Œ ์ž๋ฐ”์˜ main ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์€ ์ค€๋น„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š”๋ฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ , ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๊ธฐ ์–ด๋ ต๊ณ  ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ํ•œ ๋ฒˆ์— ์‹คํ–‰ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ์ž๋ฐ”๋Š” JUnit ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ด์„œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋จผ์ € ์ž‘์„ฑํ•œ ํ›„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹์„ ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ(TDD)์ด๋ผ ํ•œ๋‹ค. 1) ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ ๋ณดํ†ต ํ…Œ์ŠคํŠธํ•  ๊ธฐ๋Šฅ๊ณผ ๋™์ผํ•œ ํŒจํ‚ค์ง€ ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  class๋Š” ๋’ค์— Test๋ฅผ ๋ถ™์ธ๋‹ค. @Test๋Š” ํ…Œ์ŠคํŠธ ๋ฉ”์„œ๋“œ๋ผ๋Š” ๋œป์œผ๋กœ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋ฅผ ๋‹จ๋… ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ํ•œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ..
[Spring][ํ˜ผ๊ณต] 4. ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ - (2) ํšŒ์› ๋„๋ฉ”์ธ๊ณผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ
ยท
๐Ÿ“ Language/โœ JAVA
ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ 2. ํšŒ์› ๋„๋ฉ”์ธ๊ณผ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ 1) ํšŒ์› ๋„๋ฉ”์ธ ๋งŒ๋“ค๊ธฐ damain ํŒจํ‚ค์ง€ ์ƒ์„ฑ Member ํด๋ž˜์Šค ์ƒ์„ฑ: ์š”๊ตฌ์‚ฌํ•ญ ๋ฐ์ดํ„ฐ ์ •์˜ํ•œ๋‹ค. package hello.hello.spring.domain; public class Member { private Long id; // ์‹œ์Šคํ…œ์ด ์ €์žฅํ•œ ์ž„์˜์˜ ๊ฐ’ private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 2) ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋งŒ๋“ค๊ธฐ reposi..