πŸ“ Language

    [C++] μ—°μ‚°μž μ˜€λ²„λ‘œλ”©(Operator Overloading)

    μ—°μ‚°μž μ˜€λ²„λ‘œλ”©(Operator Overloading) κΈ°μ‘΄ μ œκ³΅ν•˜κ³  μžˆλŠ” μ—°μ‚°μžλ₯Ό μž¬μ •μ˜ν•˜μ—¬ μ‚¬μš©μž μ •μ˜ 클래슀둜 μ‚¬μš©ν•˜λŠ” 것을 λ§ν•œλ‹€. μƒˆλ‘œμš΄ μ—°μ‚°μžλ₯Ό μ •μ˜ν•  μˆ˜λŠ” μ—†λ‹€. κΈ°λ³Έ 제곡 데이터 ν˜•μ‹μ— μ μš©ν•  λ•Œ μ—°μ‚°μžμ˜ 의미λ₯Ό λ‹€μ‹œ μ •μ˜ν•  수 μ—†λ‹€. 멀버 ν•¨μˆ˜λ‘œ μ˜€λ²„λ‘œλ“œλœ μ—°μ‚°μžμ˜ 첫 번째 νŒŒλΌλ―Έν„°λŠ” 항상 μ—°μ‚°μžκ°€ ν˜ΈμΆœλ˜λŠ” 객체의 클래슀 ν˜•μ‹μ΄λ‹€. 1. κ΅¬ν˜„ κ°€μž₯ λ‹¨μˆœν•œ λ§μ…ˆ μ—°μ‚°μžλ₯Ό 예둜 κ΅¬ν˜„ν•΄λ³΄μž. 1) 멀버 ν•¨μˆ˜ p1+p2λŠ” p1.operator+(p2)와 κ°™λ‹€. 멀버 ν•¨μˆ˜μ™€ μ „μ—­ ν•¨μˆ˜κ°€ λ‘˜ λ‹€ 같은 λ°©μ‹μœΌλ‘œ μ˜€λ²„λ‘œλ”© λ˜μ–΄μžˆλ‹€λ©΄ 멀버 ν•¨μˆ˜κ°€ μš°μ„ μ‹œλœλ‹€. νŠΉμ • μ˜›λ‚  μ»΄νŒŒμΌλŸ¬μ—μ„  이런 상황에 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚¬ 수 μžˆμœΌλ―€λ‘œ μ›¬λ§Œν•˜λ©΄ 멀버 ν•¨μˆ˜λ‘œ μ˜€λ²„λ‘œλ”©ν•˜λŠ” 것이 μ’‹λ‹€. #include using names..

    [C#] ref와 out ν‚€μ›Œλ“œ

    ref와 out ν‚€μ›Œλ“œ ref와 out ν‚€μ›Œλ“œλŠ” 인자둜 λ„˜κΈ΄ λ³€μˆ˜λ₯Ό λ©”μ„œλ“œ λ‚΄λΆ€μ—μ„œ μ°Έμ‘° ν˜•νƒœλ‘œ μ‚¬μš©ν•œλ‹€λŠ” μ μ—μ„œ λ™μΌν•˜λ‹€. 속성(Property)은 λ³€μˆ˜κ°€ μ•„λ‹ˆλ―€λ‘œ 전달할 수 μ—†λ‹€. using System; namespace Test { class Program { static void Main(string[] args) { int i = 0; foo(ref i); Console.WriteLine(i); int j; bar(out j); Console.WriteLine(j); } static void foo(ref int a) { a = 3; } static void bar(out int a) { a = 15; } } } // 3 // 15 κ·ΈλŸ¬λ‚˜ 두 ν‚€μ›Œλ“œλ„ 차이점은 μžˆλ‹€. refλŠ” 인자둜 μ „λ‹¬ν•˜κΈ° ..

    [C++] λ¬Έμžμ—΄ 슀트림(stringstream)

    λ¬Έμžμ—΄ 슀트림 λ¬Έμžμ—΄μ— μ—¬λŸ¬ 가지 μžλ£Œν˜•μ΄ 듀어왔을 λ•Œ μš©λ„μ— 맞게 νŒŒμ‹±ν•˜κΈ° μœ μš©ν•˜λ‹€. 헀더 #include μ½”λ”© ν…ŒμŠ€νŠΈμ—μ„œ λ¬Έμžμ—΄μ„ 풀이할 λ•Œ C++ string만으둜 ν•΄κ²°ν•˜κΈ°μ—” μž‘μ€ 어렀움이 μžˆλ‹€. 1. λ¬Έμžμ—΄ 슀트림 1) stringstream μž…μΆœλ ₯ 슀트림: μž…λ ₯ 슀트림, 좜λ ₯ μŠ€νŠΈλ¦Όμ„ λͺ¨λ‘ ν•  수 μžˆλ‹€. 2) istringstream μž…λ ₯ 슀트림 λ¬Έμžμ—΄μ„ 곡백과 '\n'을 κΈ°μ€€μœΌλ‘œ μ—¬λŸ¬ 개의 λ‹€λ₯Έ ν˜•μ‹μœΌλ‘œ μ°¨λ‘€λŒ€λ‘œ 뢄리할 λ•Œ νŽΈλ¦¬ν•˜λ‹€. 반볡문 μ‹€ν–‰ μ‹œ μžλ£Œν˜•μ— λ§žλŠ” 데이터가 없을 λ•ŒκΉŒμ§€ μ‹€ν–‰λœλ‹€. #include #include #include using namespace std; int main() { istringstream iss("test\n123 aaa 456"); string s1, ..

    [Spring][혼곡] 7. AOP(Aspect Oriented Programming) - (2) AOP 적용

    [Spring][혼곡] 7. AOP(Aspect Oriented Programming) - (2) AOP 적용

    AOP 2. AOP 적용 1) 적용 곡톡 관심 사항(cross-cutting concern)κ³Ό 핡심 관심 사항(core concern)을 λΆ„λ¦¬ν•˜λŠ” 것이닀. μ‹œκ°„ μΈ‘μ • λ‘œμ§μ„ λ³„λ„μ˜ 곡톡 둜직으둜 κ΄€λ¦¬ν•˜κ³  μ›ν•˜λŠ” κ³³μ—λ§Œ μ μš©ν•œλ‹€. λ§Œμ•½, λ³€κ²½ 사항이 μžˆλ‹€λ©΄ 이 둜직만 λ³€κ²½ν•˜λ©΄ λœλ‹€. package hello.hello.spring.aop; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; @Component // string been 등둝..

    [Spring][혼곡] 7. AOP(Aspect Oriented Programming) - (1) AOPκ°€ ν•„μš”ν•œ 상황

    [Spring][혼곡] 7. AOP(Aspect Oriented Programming) - (1) AOPκ°€ ν•„μš”ν•œ 상황

    AOP μ²˜μŒλΆ€ν„° AOP 이둠 및 μš©μ–΄λ₯Ό ν•™μŠ΅ν•˜κΈ°μ—” μ–΄λ €μš°λ‹ˆ κ°„λ‹¨ν•œ 예제λ₯Ό 톡해 ν•™μŠ΅ν•œ ν›„ μ•Œμ•„λ³Ό 것이닀. 1. AOPκ°€ ν•„μš”ν•œ 상황 1) 예제 λͺ¨λ“  λ©”μ„œλ“œμ˜ 호좜 μ‹œκ°„μ„ μΈ‘μ •ν•˜κ³  μ‹Άλ‹€λ©΄? λͺ¨λ“  λ©”μ„œλ“œμ˜ μ‹œμž‘κ³Ό 끝에 μ‹œκ°„ μΈ‘μ • λ‘œμ§μ„ μΆ”κ°€ν•˜μ˜€λ‹€. λ§Œμ•½, κ°‘μžκΈ° μ‹œκ°„ λ‹¨μœ„λ₯Ό λ³€κ²½ν•΄μ•Ό ν•œλ‹€λ©΄ λͺ¨λ“  λ©”μ„œλ“œλ₯Ό λ‹€μ‹œ μˆ˜μ •ν•΄μ•Ό ν•œλ‹€. package hello.hello.spring.service; import hello.hello.spring.domain.Member; import hello.hello.spring.repository.MemberRepository; import hello.hello.spring.repository.MemoryMemberRepository; import org.springframewo..

    [Spring][혼곡] 6. μŠ€ν”„λ§ DB μ ‘κ·Ό 기술 - (6) μŠ€ν”„λ§ 데이터 JPA

    [Spring][혼곡] 6. μŠ€ν”„λ§ DB μ ‘κ·Ό 기술 - (6) μŠ€ν”„λ§ 데이터 JPA

    μŠ€ν”„λ§ DB μ ‘κ·Ό 기술 6. μŠ€ν”„λ§ 데이터 JPA μŠ€ν”„λ§ λΆ€νŠΈμ™€ JPA만 μ‚¬μš©ν•΄λ„ 개발 생산성이 크게 μ¦κ°€ν•˜κ³  κ°œλ°œν•΄μ•Ό ν•  μ½”λ“œλ„ ν™•μ—°νžˆ μ€„μ–΄λ“€μ—ˆλ‹€. 여기에 μŠ€ν”„λ§ 데이터 JPAλΌλŠ” ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜λ©΄, 기쑴의 ν•œκ³„λ₯Ό λ„˜μ–΄ 리포지토리에 κ΅¬ν˜„ 클래슀 없이 μΈν„°νŽ˜μ΄μŠ€ 만으둜 κ°œλ°œμ„ μ™„λ£Œν•  수 있고 반볡 κ°œλ°œν•΄μ˜¨ κΈ°λ³Έ CRUD κΈ°λŠ₯도 μ œκ³΅ν•œλ‹€. μŠ€ν”„λ§ 데이터 JPAλŠ” JPAλ₯Ό νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•˜λ„λ‘ λ„μ™€μ£ΌλŠ” κΈ°μˆ μ΄λ‹€. JPA와 λ™μΌν•œ ν™˜κ²½ 섀정을 가진닀. 이 κΈ°μˆ μ„ μ‚¬μš©ν•˜λ©΄ κ°œλ°œμžκ°€ 핡심 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ κ°œλ°œν•˜λŠ”λ° 집쀑할 수 μžˆλ‹€. μ‹€λ¬΄μ—μ„œ κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ μŠ€ν”„λ§ 데이터 JPAλŠ” 이제 선택이 μ•„λ‹ˆλΌ ν•„μˆ˜μ΄λ‹€. 더보기 μ‹€λ¬΄μ—μ„œλŠ” JPA와 μŠ€ν”„λ§ 데이터 JPAλ₯Ό 기본으둜 μ‚¬μš©ν•˜κ³ , λ³΅μž‘ν•œ 동적 쿼리..