Java 15

⬛ [Programmers] [Java] [Level2] μ˜μ–΄ λλ§μž‡κΈ°

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12981?language=java ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ 맀칭. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 맀칭 λ°›μœΌμ„Έμš”. programmers.co.kr 풀이 import java.util.*; class Solution { public int[] solution(int n, String[] words) { int[] answer = {0, 0}; Map map = new HashMap(); for(int i=0; i

πŸ“š [CSλ©΄μ ‘] μ›Ή λ©΄μ ‘ 질문 [1]

1. Java μžλ°”μ˜ νŠΉμ§• - μžλ°”κ°€μƒλ¨Έμ‹ (JVM)만 μ„€μΉ˜ν•˜λ©΄ μš΄μ˜μ²΄μ œμ— λ…λ¦½μ μœΌλ‘œ 싀행이 κ°€λŠ₯ν•˜λ‹€. - 객체지ν–₯μ–Έμ–΄μ˜ νŠΉμ§•μΈ 상속, μΊ‘μŠν™”, λ‹€ν˜•μ„±μ΄ 적용된 μ–Έμ–΄ - Garbage Collectorλ₯Ό 톡해 λ©”λͺ¨λ¦¬ 관리λ₯Ό 직접 ν•˜μ§€ μ•Šμ•„λ„ 됨 - λ©€ν‹°μ“°λ ˆλ“œ(Multi Thread)λ₯Ό 지원 2. OOP (Object Oriented Programming - 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°) 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ€ 데이터λ₯Ό 객체둜 μ·¨κΈ‰ν•˜μ—¬ ν”„λ‘œκ·Έλž¨μ— λ°˜μ˜ν•œ 것이닀. 순차적으둜 ν”„λ‘œκ·Έλž¨μ΄ λ™μž‘ν•˜λŠ” C언어와 달리 객체와 객체의 μƒν˜Έμž‘μš©μ„ 톡해 ν”„λ‘œκ·Έλž¨μ΄ λ™μž‘ν•œλ‹€. OOP의 νŠΉμ§• - μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ΄ λ†’μŒ - μ½”λ“œμ˜ λ³€κ²½ 용이 - 직관적인 μ½”λ“œλΆ„μ„ - κ°œλ°œμ†λ„ ν–₯상 - 상속을 톡해 μž₯점 κ·ΉλŒ€ν™” 3. Object (객체) ob..

πŸ“š [CSλ©΄μ ‘] μŠ€ν”„λ§/μŠ€ν”„λ§ λΆ€νŠΈλž€?

Spring Frame work ? Spring Java의 μ›Ή ν”„λ ˆμž„μ›Œν¬ - Java둜 λ‹€μ–‘ν•œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“€κΈ° μœ„ν•œ ν”„λ‘œκ·Έλž˜λ° ν‹€ Javaλ₯Ό μ΄μš©ν•œ Jsp, Mybatis, JPA λ“± 기술 λ“±μž₯ ν”„λ ˆμž„μ›Œν¬ [ Framework ] ν”„λ ˆμž„μ›Œν¬λŠ” μ–΄λ– ν•œ λͺ©μ μ„ λ‹¬μ„±ν•˜κΈ° μœ„ν•΄, λ³΅μž‘ν•˜κ²Œ μ–½ν˜€ μžˆλŠ” 문제λ₯Ό μ‰½κ²Œ ν•΄κ²°ν•˜κΈ° μœ„ν•œ μ•½μ†μ΄μž 도ꡬ이며, μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ— ν•˜λ‚˜μ˜ λΌˆλŒ€ μ—­ν•  자주 쓰일 λ§Œν•œ κΈ°λŠ₯듀을 ν•œκ΅°λ° λͺ¨μ•„ 놓은 μœ ν‹Έ(클래슀)λ“€μ˜ λͺ¨μŒ 무언가 λ§Œλ“€ λ•Œ ν•„μš”ν•œ 도ꡬ듀을 μ‚¬μš©ν•΄ λ§Œλ“œλŠ” 것 같은 κ°œλ… 기본적인 μ„€κ³„λ‚˜ ν•„μš”ν•œ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μ•Œμ•„μ„œ(μ˜μ‘΄μ„± μ£Όμž…) ν• ν…Œλ‹ˆ κ°œλ°œμžλŠ” 개발 μ—­λŸ‰μ— 집쀑 κ°€λŠ₯ Spring Frame work의 νŠΉμ§• IoC(Inversion of Control, μ œμ–΄μ˜ μ—­μ „) κ°œλ°œμžλŠ”..

⬛ [Programmers] [Java] [Level2] μ΅œλŒ“κ°’κ³Ό μ΅œμ†Ÿκ°’

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12939?language=java ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ 맀칭. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 맀칭 λ°›μœΌμ„Έμš”. programmers.co.kr 풀이 class Solution { public String solution(String s) { String answer = ""; String[] numbers = s.split(" "); int min = Integer.MAX_VALUE; int max = Integer.MIN_VALUE; for(int i = 0; i < numbers.length; i++){..

⬛ [Programmers] [Java] [Level1] 자릿수 λ”ν•˜κΈ°

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12931?language=java ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ 맀칭. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 맀칭 λ°›μœΌμ„Έμš”. programmers.co.kr 풀이 import java.util.*; public class Solution { public int solution(int n) { int answer = 0; while(n > 0){ answer += n%10; n/=10; } return answer; } } String으둜 λ³€ν™˜ ν›„ 각각의 자리수λ₯Ό 더해도 λ˜μ§€λ§Œ ꡳ이 λ³€ν™˜ν•˜μ§€ μ•Šκ³ λ„ ν•΄κ²° ν•  수 μžˆλŠ” 문제이..

🟩 [λ°±μ€€] [Java] [Silver5] 4673번_μ…€ν”„ λ„˜λ²„

문제 https://www.acmicpc.net/problem/4673 4673번: μ…€ν”„ λ„˜λ²„ μ…€ν”„ λ„˜λ²„λŠ” 1949λ…„ 인도 μˆ˜ν•™μž D.R. Kaprekarκ°€ 이름 λΆ™μ˜€λ‹€. μ–‘μ˜ μ •μˆ˜ n에 λŒ€ν•΄μ„œ d(n)을 nκ³Ό n의 각 자리수λ₯Ό λ”ν•˜λŠ” ν•¨μˆ˜λΌκ³  μ •μ˜ν•˜μž. 예λ₯Ό λ“€μ–΄, d(75) = 75+7+5 = 87이닀. μ–‘μ˜ μ •μˆ˜ n이 μ£Όμ–΄μ‘Œμ„ λ•Œ, www.acmicpc.net 풀이 public class μ…€ν”„λ„˜λ²„ { public static void main(String[] args) { boolean[] check = new boolean[10001]; for (int i = 1; i < 10001; i++){ int n = d(i); if(n < 10001){ check[n] = true; } } StringB..

🟒 [Spring] μŠ€ν”„λ§ μ˜μ‘΄μ„± μ£Όμž…(DI) - [2]

🚩 μƒμ„±μž μ˜μ‘΄μ„± μ£Όμž… [ DI ] 을 μ¨μ•Όν•˜λŠ” 이유 μ €λ²ˆ κΈ€μ—μ„œ μ˜μ‘΄μ„± μ£Όμž…μ— λŒ€ν•΄ μ„€λͺ…ν•˜μ˜€λ‹€. ν•„λ“œ μ£Όμž…, μˆ˜μ •μž μ£Όμž…, μƒμ„±μž μ£Όμž…μ„ μ„€λͺ…ν•˜μ˜€λŠ”λ° 이 쀑 μƒμ„±μž μ£Όμž…μ„ μ¨μ•Όν•˜λŠ” 이유λ₯Ό μ„€λͺ…ν•  것이닀. μƒμ„±μž μ£Όμž…(Constructor Injection)은 μƒμ„±μžλ₯Ό 톡해 의쑴 관계λ₯Ό μ£Όμž…ν•˜λŠ” 방법이닀. @Controller public class ControllerTest{ IServiceTest service; @Autowired public Controller(IServiceTest service){ this.service = service; } μ™œ μƒμ„±μž μ£Όμž…μ„ μ‚¬μš©ν•΄μ•Ό ν• κΉŒ? μƒμ„±μž μ£Όμž…μ€ μƒμ„±μžμ˜ 호좜 μ‹œμ μ— 1회 호좜 λ˜λŠ” 것이 보μž₯λœλ‹€. κ·ΈλŸ¬λ―€λ‘œ μ£Όμž…λ°›μ€ 객체가 λ³€ν•˜μ§€ μ•Šκ±°λ‚˜ λ°˜λ“œμ‹œ 객체..

🟒 [Spring] μŠ€ν”„λ§ μ„€μ • 파일 (XML)

πŸ“Œ μŠ€ν”„λ§ ν”„λ‘œμ νŠΈ μ„€μ • 파일 관리 μŠ€ν”„λ§ ν”„λ‘œμ νŠΈλ₯Ό μ‹œμž‘ν•˜κΈ°μ— μ•žμ„œ μŠ€ν”„λ§μ€ μ„€μ • νŒŒμΌμ„ μ„€μ •ν•˜λŠ” 뢀뢄이 μ–΄λ €μš΄ νŽΈμ΄λ‹€. Node.js 둜만 ν”„λ‘œμ νŠΈλ₯Ό ν•΄λ΄€λ˜ λ‚˜λ‘œμ¨λŠ” κ½€ νž˜λ“  μž‘μ—…λ“€μ΄μ—ˆλ‹€. XML νŒŒμΌλ“€λ„ μ²˜μŒμ΄μ—ˆκ³  JSP μ‚¬μš©λ„ μ²˜μŒμ΄μ–΄μ„œ κ½€λ‚˜ λ§Žμ€ μ‹œκ°„μ„ μ†ŒλΉ„ν•˜μ˜€λ‹€. μ§€κΈˆκΉŒμ§€ 배운 μ„€μ • νŒŒμΌμ„ web.xml / servlet-context.xml / pom.xml / application-config.xml νŒŒμΌμ΄λ‹€. μ—¬κΈ°μ„œ λ‚˜λŠ” λ”°λ‘œ config νŒŒμΌμ„ λ§Œλ“€μ–΄ 경둜λ₯Ό λ³€κ²½ν•΄μ£Όμ—ˆκΈ° λ•Œλ¬Έμ— application-config.xml 은 root-context.xml κ³Ό κ°™λ‹€κ³  λ³΄λ©΄λœλ‹€. 이 λ‚΄μš©μ€ μ•„λž˜μ—μ„œ μ„€λͺ…ν•œλ‹€. 1. Web.xml contextConfigLocation classpath:appl..

🟒 [Spring] μŠ€ν”„λ§ 빈(Bean) μ΄λž€?

πŸ“Œ μŠ€ν”„λ§ 빈(Bean) μ΄λž€? 빈(Bean)은 μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— μ˜ν•΄ κ΄€λ¦¬λ˜λŠ” μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ†Œν”„νŠΈμ›¨μ–΄ μ»΄ν¬λ„ŒνŠΈμ΄λ‹€. 즉, μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆκ°€ κ΄€λ¦¬ν•˜λŠ” μžλ°” 객체λ₯Ό λœ»ν•˜λ©°, ν•˜λ‚˜ μ΄μƒμ˜ 빈(Bean)을 κ΄€λ¦¬ν•œλ‹€. λΉˆμ€ μΈμŠ€ν„΄μŠ€ν™”λœ 객체λ₯Ό μ˜λ―Έν•˜λ©°, μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ— λ“±λ‘λœ 객체λ₯Ό μŠ€ν”„λ§ 빈이라고 ν•œλ‹€. μ‰½κ²Œ μ΄ν•΄ν•˜μžλ©΄ new ν‚€μ›Œλ“œ λŒ€μ‹  μ‚¬μš©ν•œλ‹€κ³  λ³΄λ©΄λœλ‹€. IHelloService helloService = new IHelloService() IHelloService λΌλŠ” μΈν„°νŽ˜μ΄μŠ€κ°€ μ‘΄μž¬ν•˜κ³  helloService μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄μ„œλŠ” new λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜μ˜€λ‹€. μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆκ°€ κ΄€λ¦¬ν•˜λ„λ‘ ν•˜λŠ” 방법은 빈 νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€. μ΄λ ‡κ²Œ xml 파일 빈 νƒœκ·Έλ₯Ό μΆ”κ°€ν•˜λ©΄ h..

🟨 [Java] [Project] κ°„λ‹¨ν•œ μ‡Όν•‘λͺ° ν”„λ‘œμ νŠΈ λ§Œλ“€κΈ°

πŸ“Œ μ‡Όν•‘λͺ° ν”„λ‘œμ νŠΈ 이전에 글을 μ“Έ λ•Œ μ‡Όν•‘λͺ° ν”„λ‘œμ νŠΈλ₯Ό μ •λ¦¬ν•˜λ €κ³  ν–ˆμœΌλ‚˜ μ‹œκ°„μ΄ μ—†μ–΄μ„œ μ΄μ œμ„œμ•Ό μ“°κ²Œ λ˜μ—ˆλ‹€. μˆœμ„œλŠ” μ•„λž˜μ—μ„œ μ„€λͺ…ν•˜λ„λ‘ ν•˜κ² λ‹€. μžλ°”λ₯Ό 처음 μ‚¬μš©ν•΄μ„œ λΆ€μ‘±ν•œ 뢀뢄도 λ§Žμ•˜κ³  μ‹œκ°„λ„ κ½€ κ±Έλ Έλ‹€. 근데 ν™•μ‹€νžˆ 객체지ν–₯ μ–Έμ–΄λ₯Ό μ‚¬μš©ν•˜λ‹ˆ μœ μ§€λ³΄μˆ˜κ°€ μš©μ΄ν•¨μ„ 느꼈고 데이터λ₯Ό 전달할 λ•Œ DTOλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 맀우 νŽΈν•˜λ‹€λŠ” 생각이 λ“€μ—ˆλ‹€. πŸ“Œ λͺ©μ°¨ 개발 ν™˜κ²½ μš”κ΅¬μ‚¬ν•­ μ •μ˜ 및 λͺ¨λΈλ§ μš”κ΅¬μ‚¬ν•­ μ •μ˜μ„œ λ©”λ‰΄νŠΈλ¦¬ ERD μ„œλΉ„μŠ€ ν”Œλ‘œμš° 차트 μ£Όμš” μ½”λ“œ μ„€λͺ… λͺ©μ°¨λŠ” μ΄λ ‡κ²Œ 이루어져 μžˆλ‹€. μ£Όμš” μ½”λ“œ μ„€λͺ…λ§Œ ν• κΉŒ ν•˜λ‹€κ°€ 전체적인 λ‚΄μš©μ„ λ‹€λ£¨λ©΄μ„œ λ³΅μŠ΅ν•˜λ €κ³  ν•œλ‹€. πŸ“‘ 1 . 개발 ν™˜κ²½ IDE : Eclipse Configuration : Github [ https://github.com/wnstjd9701/s..