πŸ“š Tech

    μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄(Composite Pattern)

    μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄(Composite Pattern)

    μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄(Composite Pattern) μ»΄ν¬μ§€νŠΈ OOPμ—μ„œ μ»΄ν¬μ§€νŠΈλŠ” ν•˜λ‚˜ μ΄μƒμ˜ μœ μ‚¬ν•œ 객체둜 κ΅¬μ„±λœ 집합 객체둜 λͺ¨λ‘ μœ μ‚¬ν•œ κΈ°λŠ₯을 λ‚˜νƒ€λ‚Έλ‹€. 이λ₯Ό 톡해 객체 그룹을 μ‘°μž‘ν•˜λŠ” κ²ƒμ²˜λŸΌ 단일 객체λ₯Ό μ‘°μž‘ν•  수 μžˆλ‹€. μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄ μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄μ€ 볡합 κ°μ²΄λ‚˜ 단일 객체λ₯Ό λ™μΌν•˜κ²Œ μ·¨κΈ‰ν•˜λŠ” 것을 λͺ©μ μœΌλ‘œ ν•œλ‹€. 트리 ꡬ쑰둜 μž‘μ„±ν•˜μ—¬ 전체-λΆ€λΆ„(whole-part) 관계λ₯Ό ν‘œν˜„ν•œλ‹€. 1. κ΅¬ν˜„ μ‚¬μš©μžλŠ” Leaf와 Composite 클래슀λ₯Ό 직접 μ°Έμ‘°ν•˜μ§€ μ•Šκ³ , 곡톡 μΈν„°νŽ˜μ΄μŠ€ Componentλ₯Ό μ°Έμ‘°ν•œλ‹€. 1) Component λͺ¨λ“  Component듀을 μœ„ν•œ μΆ”μƒν™”λœ κ°œλ…μ΄λ‹€. Leaf와 Composite 클래슀의 μΈν„°νŽ˜μ΄μŠ€μ΄λ‹€. interface Graphic { public void print..

    μŠ€νŠΈλž˜ν‹°μ§€ νŒ¨ν„΄(Strategy Pattern)

    μŠ€νŠΈλž˜ν‹°μ§€ νŒ¨ν„΄(Strategy Pattern)

    μŠ€νŠΈλž˜ν‹°μ§€ νŒ¨ν„΄(Strategy Pattern) μ „λž΅ νŒ¨ν„΄μ΄λž€ λΉ„μŠ·ν•œ λ™μž‘μ„ ν•˜μ§€λ§Œ λ‹€λ₯΄κ²Œ κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” ν–‰μœ„(μ „λž΅)듀을 κ³΅ν†΅μ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ†λ°›λŠ” 각각의 클래슀둜 κ΅¬ν˜„ν•˜κ³  λ™μ μœΌλ‘œ λ°”κΏ€ 수 μžˆλ„λ‘ ν•˜λŠ” νŒ¨ν„΄μ΄λ‹€. μ „λž΅ νŒ¨ν„΄μœΌλ‘œ κ΅¬ν˜„λœ μ½”λ“œλŠ” 직접 ν–‰μœ„μ— λŒ€ν•œ μ½”λ“œλ₯Ό μˆ˜μ •ν•  ν•„μš” 없이 μ „λž΅λ§Œ λ³€κ²½ν•˜μ—¬ μœ μ—°ν•˜κ²Œ ν™•μž₯ν•  수 있게 λœλ‹€. 1. κ΅¬ν˜„ λ§Œμ•½ μ „λž΅ νŒ¨ν„΄μ„ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄, λ‹¨μˆœνžˆ if-elseλ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„ν•΄μ•Ό ν•˜λ©° κ²Œμž„μ΄ μ—…λ°μ΄νŠΈλ˜μ–΄ 직업이 μΆ”κ°€λ˜κ±°λ‚˜ μˆ˜μ •μ΄ ν•„μš”ν•˜λ‹€λ©΄ attack() λ©”μ„œλ“œλ₯Ό μˆ˜μ •ν•΄μ•Ό ν•  것이닀. class Character { private final String job; Character(String job) { this.job = job; } void attack() ..

    [κ²Œμž„ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄] κ²Œμž„ κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄

    [κ²Œμž„ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄] κ²Œμž„ κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄

    κ²Œμž„ κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄ κ²Œμž„ 개발의 κ΄€μ μ—μ„œ 각 λ””μžμΈ νŒ¨ν„΄μ— λŒ€ν•΄μ„œ λ‹€λ£° 것이닀. κ·ΈλŸ¬λ‚˜ λͺ¨λ“  μ•±μ΄λ‚˜ κ²Œμž„ κ°œλ°œμ—μ„œλ„ μ μš©λœλ‹€. 1. Singleton Design Pattern ν”„λ‘œκ·Έλž¨μ΄ μ‹œμž‘λ  λ•Œ ν΄λž˜μŠ€κ°€ 졜초 ν•œ 번만 λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜κ³  κ·Έ λ©”λͺ¨λ¦¬μ— μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€μ–΄ μ‚¬μš© 2020.05.16 - [πŸ“/✏ Design Pattern] - 싱글톀 νŒ¨ν„΄(Singleton Pattern) κ²Œμž„μ—μ„œλŠ” μ˜ν™”μ²˜λŸΌ ν•œ λͺ…μ˜ λ””λ ‰ν„°κ°€ μ‘΄μž¬ν•œλ‹€. λ””λ ‰ν„°λŠ” κ²Œμž„μ—μ„œ μΌμ–΄λ‚˜λŠ” λͺ¨λ“  것을 μˆ˜ν–‰ν•˜λŠ” ν΄λž˜μŠ€μ΄λ‹€. 였브젝트λ₯Ό λžœλ”λ§ ν•˜κ³  μœ„μΉ˜λ₯Ό μ—…λ°μ΄νŠΈν•˜κ³  ν”Œλ ˆμ΄μ–΄μ˜ μž…λ ₯을 μ •ν™•ν•œ 캐릭터에 전달해 μ£ΌλŠ” λ“±μ˜ 역할을 μˆ˜ν–‰ν•œλ‹€. Singleton νŒ¨ν„΄μ„ 톡해 λ””λ ‰ν„°κ°€ ν•˜λ‚˜ 이상 μƒμ„±λ˜λŠ” 것을 λ°©μ§€ν•œλ‹€. 2. Strat..

    [Unity] Mathf.Lerp() ν•¨μˆ˜

    [Unity] Mathf.Lerp() ν•¨μˆ˜

    Lerp 1. κ°œλ… μ„ ν˜• 보간(Linear Interpolation)은 두 점(a, b) μ‚¬μ΄μ˜ κ°’(c)을 κ΅¬ν•˜κΈ° μœ„ν•΄ 두 점을 μ—°κ²°ν•œ 직선을 λ§Œλ“€μ–΄ 사이 κ°’(t)을 κ³„μ‚°ν•˜λŠ” 방법이닀. Mathf.Lerp(float a, float b, float t) μ—¬κΈ°μ„œ tλŠ” percet(0 ~ 1)의 κ°œλ…μ΄κΈ° λ•Œλ¬Έμ— t = 0이면 a, t = 1이면 b와 κ°™λ‹€. 2. μœ λ‹ˆν‹° ν™œμš© 1) λΆ€λ“œλŸ¬μš΄ μ›€μ§μž„ λΆ€λ“œλŸ¬μš΄ μ›€μ§μž„μ„ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ Update()μ—μ„œ 두 점 μ‚¬μ΄μ˜ ꡬ간을 μ§€μ†μ μœΌλ‘œ μ΄λ™μ‹œμΌœ ν™œμš©ν•  수 μžˆλ‹€. Update() ν•¨μˆ˜κ°€ ν˜ΈμΆœλ˜λŠ” 맀 ν”„λ ˆμž„λ§ˆλ‹€ μœ„μΉ˜λŠ” 계속 움직일 것이고 λͺ©ν‘œ 지점에 κ·Όμ ‘ν• μˆ˜λ‘ λ”μš± λΆ€λ“œλŸ¬μš΄ μ›€μ§μž„μ„ λ‚˜νƒ€λ‚΄κ²Œ λœλ‹€. void Update() { a = Mathf.Lerp(a, b, 0...

    [C#] Math

    Math 1. Math VS C# math μˆ˜ν•™μ  곡식을 C#μ—μ„œ κ·ΈλŒ€λ‘œ ν‘œν˜„ν–ˆμ„ λ•Œ, κ°„ν˜Ή 잘λͺ»λœ κ²°κ³Όλ₯Ό μ‚°μΆœν•˜λŠ” κ²½μš°κ°€ μžˆλ‹€. 예λ₯Ό λ“€μ–΄ 섭씨λ₯Ό ν™”μ”¨λ‘œ λ³€ν™”ν•˜λŠ” μˆ˜ν•™μ  곡식은 λ‹€μŒκ³Ό κ°™λ‹€. °F = °C × 9/5 + 32 이λ₯Ό μ½”λ“œλ‘œ μž‘μ„±ν•˜λ©΄ μ•„λž˜μ™€ 같이 ν‘œν˜„ν•  수 μžˆλ‹€. μˆ˜ν•™μ μœΌλ‘œ F1와 F2λŠ” λ™μΌν•œ μ‹μ΄μ§€λ§Œ, C#μ—μ„œλŠ” F2λŠ” 잘λͺ»λœ κ²°κ³Όλ₯Ό μ‚°μΆœν•œλ‹€. double C = 25.50; double F1 = C * 9 / 5 + 32; double F2 = C * (9 / 5) + 32; Console.WriteLine(F1); // 77.9F Console.WriteLine(F2); // 57.5F μ΄λ•Œ μ‚¬μš©λœ ν‚€μ›Œλ“œκ°€ var이닀. varλŠ” C# 데이터 νƒ€μž…μ„ μ»΄νŒŒμΌλŸ¬κ°€ μΆ”λ‘ ν•΄μ„œ μ•Œμ•„μ„œ μ •ν•˜κ²Œ ..

    [Unity] ν™œμš© κ°€λŠ₯ν•œ AI μ½”λ”© μ„œλΉ„μŠ€ 2편

    [Unity] ν™œμš© κ°€λŠ₯ν•œ AI μ½”λ”© μ„œλΉ„μŠ€ 2편

    ν™œμš© κ°€λŠ₯ν•œ AI μ½”λ”© μ„œλΉ„μŠ€ 2. Github Copilot Github Copilot은 μžλ™ μ½”λ“œ μ™„μ„± 인곡지λŠ₯이닀. κΉƒν—ˆλΈŒμ— μžˆλŠ” μˆ˜λ§Žμ€ λ ˆν¬μ§€ν† λ¦¬λ“€μ„ ν•™μŠ΅ν•˜μ—¬ μ£Όμ„μ΄λ‚˜ ν•¨μˆ˜λ₯Ό μžλ™μœΌλ‘œ μ™„μ„±ν•΄ λ‹¨μˆœν•˜κ³  번거둜운 μž‘μ—…λ“€μ„ μžλ™ν™”ν•  수 μžˆλ‹€. https://github.com/features/copilot?utm_source=youtube&utm_medium=social&utm_campaign=unitylive-jan_unitytips_aicoding GitHub Copilot · Your AI pair programmer GitHub Copilot works alongside you directly in your editor, suggesting whole lines or entire function..