๐ปProgramming
-
[Algorithm] ์ ํ์ ๋ ฌ(Selection Sort)๐ปProgramming/Algorithm 2024. 3. 26. 21:39
์ ํ์ ๋ ฌ์ด๋? ์ ๋ ฌ๋์ง ์์ ๋ฐ์ดํฐ๋ค์ ๋ํด ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ์ ๊ตํํจ์ผ๋ก์จ ์ ๋ ฌํ๋ ์ ๋ ฌ ๋ฐฉ๋ฒ์ด๋ค. ์ ํ ์ ๋ ฌ์ ๊ณผ์ ์ ๊ฐ์ ์๋ฆฌ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ด ๋๋ค. 1. ํ์ฌ์ ์ธ๋ฑ์ค๋ฅผ minIndex์ ๋ฃ์ด์ค๋ค. 2. ๊ทธ ๋ค์ ์ธ๋ฑ์ค์์ for๋ฌธ์ ๋๋ ค ๋ง์ฝ์ ๋ค๋ฅธ ์ธ๋ฑ์ค์ ๊ฐ์ด ๋ ์๋ค๋ฉด ๋ฐ๊ฟ์ค๋ค. ์ด๋ ๊ฒ ๋ง์ง๋ง๊น์ง ๋๋ฉด minIndex์ ์ธ๋ฑ์ค ๊ฐ์ ๊ฐ์ฅ ์์ ๊ฐ์ ๊ฐ์ง ์ธ๋ฑ์ค์ผ ๊ฒ์ด๋ค. ๋ง์ง๋ง ์ธ๋ฑ์ค๋ ์ด๋ฏธ ๊ทธ ์์ ์ธ๋ฑ์ค๋ฅผ ํตํด ๊ต์ฒด๊ฐ ๋์ด ๊ฐ์ฅ ํฐ ์์ผ ๊ฒ์ด๋ฏ๋ก for๋ฌธ์ n-1๋ฒ๊น์ง๋ง ๋๋ฉด ๋๋ค. ๊ตฌํ ์ฝ๋ import java.util.Scanner; public class Main { private int[] solution(int n, int[] list) { for..
-
[๋์์ธํจํด] ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น SOLID(feat: Spring)๐ปProgramming/๋์์ธํจํด 2024. 3. 22. 18:45
SOLID ์์น์ ์์์ผ ํ๋ ์ด์ ์์คํ ์ ์๋ก์ด ๊ธฐ๋ฅ์ด ํ์ฅ๋๊ฑฐ๋ ๋ณ๊ฒฝ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ ๊ธฐ์กด ๊ธฐ๋ฅ๋ค์ด ์ํฅ์ ์ ๊ฒ ๋ฐ๋ ๊ฒ์ด ์ข์ ์ค๊ณ์ด๊ธฐ ๋๋ฌธ. ์ด ์ข์ ์ค๊ณ๋ฅผ ํ๊ธฐ ์ํด ๋ํ๋ ๋ค์ฏ๊ฐ์ง ์์น์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด SOLID์์น์ด๋ค. ์ด ์์น์ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฅผ ํ์ฅํ๊ณ , ์ ์ง ๋ณด์ ๊ด๋ฆฌํ๊ธฐ๊ฐ ์ฌ์์ง๋ฉฐ, ๋ถํ์ํ ๋ณต์ก์ฑ์ ์ ๊ฑฐํด ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ๋์ผ ์ ์๋ค. ๋ํ, ๋ฉด์ ๋จ๊ณจ ์ง๋ฌธ์ด๋ผ๊ณ ํ๋ ์ ๊ธฐ์ตํด๋๋ฉด ์ข๊ฒ ๋ค. 1. SRP(Single Responsibility Principle): ๋จ์ผ ์ฑ ์ ์์น ํ ํด๋์ค๋ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผํ๋ค. -> ํ ํด๋์ค๊ฐ ์ฌ๋ฌ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ๋ฉด ์๋๋ค๋ ๊ฒ. ๋ง์ฝ ํ ํด๋์ค๊ฐ ์ฌ๋ฌ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ๋ฉด, ๋ณ๊ฒฝ์ด ์ผ์ด๋ฌ์ ๋ ์์ ํด์ผํ ์ฝ๋๊ฐ ์ฆ๊ฐ. ex. A๋ฅผ ์..
-
[Swift] Sheet๊ณผ FullScreenCover, NavigationView๐ปProgramming/Swift 2024. 3. 20. 22:55
.sheet ํ์ฌ View์์ ์ฝ 90%๋ถ๋ถ ์ ๋ overlay๋๋ View .sheet ์ฌ์ฉ ZStack { // Background Color.cyan.ignoresSafeArea() // Content Button { showSheet.toggle() } label: { Text("Button") .foregroundColor(.cyan) .font(.headline) .padding() .background(.white) .cornerRadius(10) } .sheet(isPresented: $showSheet, content: { SheetBasic2() }) } @State property๋ก ์ ์ธํ boolean ํ์ ์ showSheet๋ณ์๋ฅผ isPresent ํ๋ผ๋ฏธํฐ์ ๋๊ฒจ์ค ํ, ๋๊ฒจ์ค V..
-
[SpringBoot] JPA๋?๐ปProgramming/SpringBoot 2024. 3. 20. 18:48
JPA(Java Persistence API)๋? JPA๋ Java ์ง์์์ ORM(Object-Relational Mapping) ๊ธฐ์ ํ์ค์ผ๋ก ์ฌ์ฉ๋๋ ์ธํฐํ์ด์ค์ ๋ชจ์ Hibernate, Spring JPA๋ฑ๊ณผ ๊ฐ์ ๊ตฌํ์ฒด๊ฐ ์๊ณ , ์ด๊ฒ์ ํ์ค ์ธํฐํ์ด์ค๊ฐ JPA์ด๋ค. -> JPA๋ ์ธํฐํ์ด์ค ์ค์ฒด์ ์ผ๋ก ๊ตฌํ๋ ๊ฒ์ด ์๋๋ผ ๊ตฌํ๋ ํด๋์ค์ ๋งคํํด์ฃผ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ๋ ์์ํฌ์ด๋ค. ORM(Object-Relational Mapping)์ด๋? ์๋ฐ์ ๊ฐ์ฒด์ Relational Database(RDB)๋ฅผ ๋งคํํ๋ ๊ฒ์ผ๋ก DB์ ํน์ ํ ์ด๋ธ์ด ์๋ฐ์ ๊ฐ์ฒด๋ก ๋งคํ๋์ด SQL๋ฌธ์ ์ผ์ผ์ด ์์ฑํ์ง ์๊ณ ๊ฐ์ฒด๋ก ๊ตฌํํ ์ ์๋๋ก ํ๋ ํ๋ ์์ํฌ์ด๋ค. ๊ธฐ์ ์ ์ผ๋ก๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฒด๋ฅผ RDB ํ ์ด๋ธ์ ์๋์ผ๋ก ์์..
-
[Swift] State์ Binding์ด ๋ฌด์์ผ๊น?๐ปProgramming/Swift 2024. 3. 18. 17:19
Property Mapper(@) ํ๋กํผํฐ๊ฐ ์ ์ฅ๋๋ ๋ฐฉ์์ ๊ด๋ฆฌํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐ์์ผ ์ฃผ๋ ๊ฒ.(์ฌ์ฌ์ฉ ๊ฐ๋ฅ) @State SwiftUI์ ์ํด ๊ด๋ฆฌ๋๋ property wrapper ํ์ ๋ณ์๊ฐ ๋ณ๊ฒฝ๋ ๋, View์์๋ update ๋๋ฉด์ ๊ฐ์ด ๋ณ๊ฒฝ๋๊ธธ ์ํ ๋ ์ฌ์ฉ. @State ์ฌ์ฉ struct StateBasic: View { // property @State var backgroundColor: Color = Color.green @State var myTitle: String = "์์ง ๋ฒํผ ์๋๋ฆผ" @State var count: Int = 0 } ์ ๊ฐ์ด ์ฌ์ฉ ๊ฐ๋ฅ. HStack (spacing: 20) { Button { // action backgroundColor = .red myT..
-
[SpringBoot] ์คํ๋ง Bean๊ณผ ์์กด์ฑ ์ฃผ์ (Dependency Injection) feat: ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์ฑ๊ธํค ํจํด, ์ ์ด์ ์ญ์ ๐ปProgramming/SpringBoot 2024. 3. 12. 21:36
Bean ์คํ๋ง ์ปจํ ์ด๋์ ์ํด ๊ด๋ฆฌ๋๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ํํธ์จ์ด ์ปดํฌ๋ํธ(component)๋ก, ์คํ๋ง ์ปจํ ์ด๋๊ฐ ๊ด๋ฆฌํ๋ ์๋ฐ ๊ฐ์ฒด๋ฅผ ๋ปํ๋ค. ์์กด์ฑ ์ฃผ์ ์ด๋? ๋ณดํต ์คํ๋ง์์๋ controller ํด๋์ค์์ ์์ฒญ์ ๋ฐ๊ณ , ํด๋น ์์ฒญ์ ๋ํ ๋น์ฆ๋์ค ๋ก์ง์ ๋ํ ์ฒ๋ฆฌ๋ service ํด๋์ค์์ ๊ตฌํํ๊ณ , ์ด ๋น์ฆ๋์ค ๋ก์ง์์ ํ์ํ ๋ฐ์ดํฐ ์ ๊ทผ์๋ repository ํด๋์ค์์ ์ฒ๋ฆฌ๋ฅผ ํ๋ค. ์ด ๊ฒฝ์ฐ controller๋ service์ ์์กดํ๊ณ , service๋ repository์ ์์กดํ๋ ํ์์ผ๋ก ์ผ๋ฐ์ ์ผ๋ก ์คํ๋ง๋ถํธ ํ๋ก์ ํธ๊ฐ ๊ตฌ์ฑ๋๋ค. ์๋ฅผ ๋ค์ด, public class MemberController { private final MemberService memberService; public..
-
[Java] HashMap ์ฌ์ฉ๋ฒ๐ปProgramming/Java 2024. 3. 10. 22:44
์ฝํ ๋ฅผ ํ ๋ ์ค์ํ HashMap์ ๋ํด์ ์์๋ณด๊ฒ ๋ค. ์ฐ์ HashMap์ Map ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ ํด๋์ค๋ก, 'ํค(key)'์ '๊ฐ(value)'์ ์์ผ๋ก ๊ตฌ์ฑ๋๋ ์์์ด๋ค. ํด์๋งต์ ๋ด๋ถ์ 'ํค'์ '๊ฐ'์ ์ ์ฅํ๋ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์๋ฅผ ์ฝ์ ํ๊ฑฐ๋ ๊ฒ์ ํน์ ์ญ์ ์์ ์ด ๊ฐ๋ฅํ๋ค. HashMap์ ์ ์ธ๊ณผ ์ฌ์ฉ HashMap map = new HashMap();// ํด์๋งต ์์ฑ map.put("apple", "์ฌ๊ณผ");// ๊ฐ์ ์ฝ์ . ๋ง์ฝ์ ํค์ ํด๋นํ๋ ๊ฐ์ด ์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด, ์์ ๋จ. String kor = h.get("apple"); // ํค์ ํด๋นํ๋ ๊ฐ์ ๊ฒ์. HashMap์ ์ฅ๋จ์ 1. ์์์ ์ฝ์ , ์ญ์ ์๊ฐ์ด ๋งค์ฐ ๋น ๋ฅด๋ค. ์์์ ์์น๋ฅผ ๊ฒฐ์ ํ๋ ํด์ ํจ์๊ฐ ๊ฐ๋จํ ์ฝ๋๋ก ..
-
[SpringBoot] ์ ์ ์ปจํ ์ธ ์ ๋์ ์ปจํ ์ธ (feat: MVC, ํ ํ๋ฆฟ ์์ง)๐ปProgramming/SpringBoot 2024. 3. 10. 18:09
์ ์ ์ปจํ ์ธ ๋? ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๊ณ , ์๋ฒ์ ๋ฏธ๋ฆฌ ์ ์ฅ๋ HTML, css, js๋ฑ์ ํ์ผ์ ๊ทธ๋๋ก ์๋ตํด ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ์๋ฏธ. ๋ชจ๋ ํด๋ผ์ด์ธํธ๋ค์ ์์ฒญ์ ๋ํด "๋์ผํ ๊ฒฐ๊ณผ"๋ฅผ ๋ณด์ฌ์ค๋ค. ๋์ ์ปจํ ์ธ ๋? ์ด๋ค ํด๋ผ์ด์ธํธ๊ฐ ์ธ์ , ์ด๋์, ์ด๋ป๊ฒ ์๋ฒ์ ์์ฒญํ๋์ง์ ๋ฐ๋ผ ๊ฐ๊ธฐ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค. MVC์ ํ ํ๋ฆฟ ์์ง์ ์ฌ์ฉํ๋ ๋ฐฉ์๊ณผ API๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๋๋๋ค. ์ ์ ์ปจํ ์ธ ๋ฅผ ์ด์ฉํ ์น ๊ฐ๋ฐ ์คํ๋ง๋ถํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ ์ปจํ ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฏ๋ก '/main/resources/static/'์ ํ์์ ์ ์ ํ์ผ์ ์์ฑํ ์ ์๋ค. ์ ์ ์ปจํ ์ธ ์ ๋๋ค. ์ด ํ์ผ์ ์ด๋ฆ์ hello-static.html์ด๋ผ๊ณ ์ง์ ํ์๋ค๊ณ ๊ฐ์ ํ ๊ฒฝ์ฐ, "localhost:8080/hello-static.htm..