πŸ“ Language

    [Spring][혼곡] 4. μŠ€ν”„λ§ 빈과 μ˜μ‘΄κ΄€κ³„ - (2) 직접 μŠ€ν”„λ§ 빈 λ“±λ‘ν•˜κΈ°

    μŠ€ν”„λ§ 빈과 μ˜μ‘΄κ΄€κ³„ 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) μ»΄ν¬λ„ŒνŠΈ μŠ€μΊ”κ³Ό μžλ™ μ˜μ‘΄κ΄€κ³„ μ„€μ •

    [Spring][혼곡] 4. μŠ€ν”„λ§ 빈과 μ˜μ‘΄κ΄€κ³„ - (1) μ»΄ν¬λ„ŒνŠΈ μŠ€μΊ”κ³Ό μžλ™ μ˜μ‘΄κ΄€κ³„ μ„€μ •

    μŠ€ν”„λ§ 빈과 μ˜μ‘΄κ΄€κ³„ μ§€κΈˆκΉŒμ§€ νšŒμ› μ„œλΉ„μŠ€λ₯Ό 톡해 νšŒμ› κ°€μž…κ³Ό 쑰회λ₯Ό ν•˜μ—¬ νšŒμ› 리포지토리에 μ €μž₯ν•˜κ³  λ‹€μ‹œ κΊΌλ‚Ό 수 μžˆλ„λ‘ λ‘œμ§μ„ λ§Œλ“€μ—ˆλ‹€. 이젠 웹에 보이도둝 화면에 λ„μ›Œμ•Ό ν•˜λŠ”λ°, 이 μž‘μ—…μ„ μœ„ν•΄μ„  Controller와 Viewκ°€ ν•„μš”ν•˜λ‹€. μ—¬κΈ°μ„œ νšŒμ› μ»¨νŠΈλ‘€λŸ¬λŠ” νšŒμ› μ„œλΉ„μŠ€λ₯Ό 톡해 νšŒμ› κ°€μž…κ³Ό 데이터 쑰회λ₯Ό ν•œλ‹€. μ΄λŸ¬ν•œ 관계λ₯Ό μ„œλ‘œ μ˜μ‘΄κ΄€κ³„κ°€ μžˆλ‹€κ³  ν‘œν˜„ν•˜λŠ”λ°, 즉 νšŒμ› μ»¨νŠΈλ‘€λŸ¬λŠ” νšŒμ› μ„œλΉ„μŠ€λ₯Ό μ˜μ‘΄ν•˜κ³  μžˆλ‹€. νšŒμ› μ»¨νŠΈλ‘€λŸ¬κ°€ νšŒμ› μ„œλΉ„μŠ€μ™€ νšŒμ› 리포지토리λ₯Ό μ‚¬μš©ν•  수 있게 μ˜μ‘΄κ΄€κ³„λ₯Ό μ„€μ •ν•΄λ³΄μž. μŠ€ν”„λ§ λΉˆμ„ λ“±λ‘ν•˜κ³  μ˜μ‘΄κ΄€κ³„λ₯Ό μ„€μ •ν•˜λŠ” 2가지 방법 μ»΄ν¬λ„ŒνŠΈ μŠ€μΊ”κ³Ό μžλ™ μ˜μ‘΄κ΄€κ³„ μ„€μ • μžλ°” μ½”λ“œλ‘œ 직접 μŠ€ν”„λ§ 빈 λ“±λ‘ν•˜κΈ° μŠ€ν”„λ§ 빈(Spring Bean) Spring IOC μ»¨ν…Œμ΄λ„ˆκ°€ κ΄€λ¦¬ν•˜λŠ” 자..

    [Spring][혼곡] 4. νšŒμ› 관리 예제 - (4) νšŒμ› μ„œλΉ„μŠ€ 개발

    [Spring][혼곡] 4. νšŒμ› 관리 예제 - (4) νšŒμ› μ„œλΉ„μŠ€ 개발

    νšŒμ› 관리 예제 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..

    [Spring][혼곡] 4. νšŒμ› 관리 예제 - (3) ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μž‘μ„±

    [Spring][혼곡] 4. νšŒμ› 관리 예제 - (3) ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μž‘μ„±

    νšŒμ› 관리 예제 3. νšŒμ› 리포지토리 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μž‘μ„± κ°œλ°œν•œ κΈ°λŠ₯을 μ‹€ν–‰ν•΄μ„œ ν…ŒμŠ€νŠΈν•  λ•Œ μžλ°”μ˜ main λ©”μ„œλ“œλ₯Ό ν†΅ν•΄μ„œ μ‹€ν–‰ν•˜κ±°λ‚˜, μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 컨트둀러λ₯Ό ν†΅ν•΄μ„œ ν•΄λ‹Ή κΈ°λŠ₯을 μ‹€ν–‰ν•œλ‹€. μ΄λŸ¬ν•œ 방법은 μ€€λΉ„ν•˜κ³  μ‹€ν–‰ν•˜λŠ”λ° 였래 걸리고, 반볡 μ‹€ν–‰ν•˜κΈ° μ–΄λ ΅κ³  μ—¬λŸ¬ ν…ŒμŠ€νŠΈλ₯Ό ν•œ λ²ˆμ— μ‹€ν–‰ν•˜κΈ° μ–΄λ ΅λ‹€λŠ” 단점이 μžˆλ‹€. μžλ°”λŠ” JUnit ν”„λ ˆμž„μ›Œν¬λ‘œ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•΄μ„œ μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•œλ‹€. ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό λ¨Όμ € μž‘μ„±ν•œ ν›„ κ°œλ°œν•˜λŠ” 방식을 ν…ŒμŠ€νŠΈ 주도 개발(TDD)이라 ν•œλ‹€. 1) ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μž‘μ„± 보톡 ν…ŒμŠ€νŠΈν•  κΈ°λŠ₯κ³Ό λ™μΌν•œ νŒ¨ν‚€μ§€ μ΄λ¦„μœΌλ‘œ μƒμ„±ν•˜κ³  classλŠ” 뒀에 Testλ₯Ό 뢙인닀. @TestλŠ” ν…ŒμŠ€νŠΈ λ©”μ„œλ“œλΌλŠ” 뜻으둜 ν•΄λ‹Ή λ©”μ„œλ“œλ₯Ό 단독 μ‹€ν–‰μ‹œν‚¬ 수 μžˆλ‹€. ν•œ λ²ˆμ— μ—¬λŸ¬ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜λ©΄ λ©”λͺ¨λ¦¬..

    [Spring][혼곡] 4. νšŒμ› 관리 예제 - (2) νšŒμ› 도메인과 리포지토리 λ§Œλ“€κΈ°

    [Spring][혼곡] 4. νšŒμ› 관리 예제 - (2) νšŒμ› 도메인과 리포지토리 λ§Œλ“€κΈ°

    νšŒμ› 관리 예제 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..

    [Spring][혼곡] 4. νšŒμ› 관리 예제 - (1) λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬μ‚¬ν•­ 정리

    [Spring][혼곡] 4. νšŒμ› 관리 예제 - (1) λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬μ‚¬ν•­ 정리

    νšŒμ› 관리 예제 1. λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬μ‚¬ν•­ 정리 1) μš”κ΅¬μ‚¬ν•­ 데이터: νšŒμ› ID, 이름 κΈ°λŠ₯: νšŒμ› 등둝, 쑰회 κ°€μƒμ˜ μ‹œλ‚˜λ¦¬μ˜€λ‘œ 아직 데이터 μ €μž₯μ†Œκ°€ μ„ μ •λ˜μ§€ μ•Šμ•˜λ‹€. 2) 일반적인 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측 ꡬ쑰 컨트둀러: μ›Ή MVC의 컨트둀러 역할이닀. μ„œλΉ„μŠ€: 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 κ΅¬ν˜„λ˜μ–΄ μžˆλ‹€. Ex) νšŒμ›μ€ 쀑볡 κ°€μž…μ΄ μ•ˆλœλ‹€. 리포지토리: DB에 μ ‘κ·Ό 및 도메인 객체λ₯Ό DB에 μ €μž₯ν•˜κ³  κ΄€λ¦¬ν•œλ‹€. 도메인: λΉ„μ¦ˆλ‹ˆμŠ€ 도메인 객체이닀. Ex) 주둜 DB에 μ €μž₯ν•˜κ³  κ΄€λ¦¬λ˜λŠ” νšŒμ›, μ£Όλ¬Έ, 쿠폰 λ“± 3) 클래슀 의쑴 관계 데이터 μ €μž₯μ†ŒλŠ” RDB, NoSQL λ“± λ‹€μ–‘ν•œ μ €μž₯μ†Œλ₯Ό κ³ λ―Ό 쀑이며 아직 μ„ μ •λ˜μ§€ μ•Šμ•˜λ‹€. μš°μ„  μΈν„°νŽ˜μ΄μŠ€λ‘œ κ΅¬ν˜„ν•˜κ³  λ‚˜μ€‘μ— 클래슀λ₯Ό λ³€κ²½ν•  수 μžˆλ„λ‘ μ„€κ³„ν•œλ‹€. 개발 진행을 μœ„ν•΄ 초기 개..