day1 πŸŒ•

μž₯λ―ΈΒ·2022λ…„ 6μ›” 14일
0

였늘의 μ„±κ³Ό

λͺ©λ‘ 보기
1/129

- μžλ°” μ–Έμ–΄ 곡뢀 (with Do it! μžλ°” μ™„μ „ 정볡)

  • 컴파일러: 컴퓨터가 이해할 수 μžˆλŠ” μ–Έμ–΄λ‘œ λ³€ν™˜ν•΄μ€€λ‹€.
  • μžλ°” νŠΉμ§•: ν”Œλž«νΌ 독립성 -> μžλ°” 가상 λ¨Έμ‹ 
  • public: 이 클래슀λ₯Ό λ‹€λ₯Έ νŒ¨ν‚€μ§€μ—μ„œλ„ μ‚¬μš©ν•  수 μžˆλ‹€. ^^*
  • 1개의 μ†ŒμŠ€ 파일(.java)μ—λŠ” μ΅œλŒ€ 1개의 public class만 μ„ μ–Έ κ°€λŠ₯!!
  • κΈ°λ³Έ μžλ£Œν˜•μ€ μŠ€νƒ λ©”λͺ¨λ¦¬μ— μƒμ„±λœ 곡간에 μ‹€μ œ λ³€μˆ˜κ°’μ„ μ €μž₯ν•˜λŠ” 반면, μ°Έμ‘° μžλ£Œν˜•μ€ μ‹€μ œ 데이터값은 νž™(heap) λ©”λͺ¨λ¦¬μ— μ €μž₯ν•˜κ³ , μŠ€νƒ λ©”λͺ¨λ¦¬μ˜ λ³€μˆ˜ κ³΅κ°„μ—λŠ” νž™ λ©”λͺ¨λ¦¬μ˜ μœ„μΉ˜κ°’μ„ μ €μž₯ν•œλ‹€.

- μΈν”„λŸ° μŠ€ν”„λ§ μž…λ¬Έ κ°•μ˜ 23κ°•~28κ°•

μŠ€ν”„λ§ μž…λ¬Έ - μ½”λ“œλ‘œ λ°°μš°λŠ” μŠ€ν”„λ§ λΆ€νŠΈ, μ›Ή MVC, DB μ ‘κ·Ό 기술
이전 κ°•μ˜λ“€μ€ λ‹€λ₯Έ μŠ€ν„°λ”” μ€€λΉ„ν•˜λ©΄μ„œ λ“€μ—ˆλ‹€.

  • 23κ°•. μŠ€ν”„λ§ JdbcTemplate
    μŠ€ν”„λ§ JdbcTemplateκ³Ό MyBatis 같은 λΌμ΄λΈŒλŸ¬λ¦¬λŠ” JDBC APIμ—μ„œ λ³Έ 반볡 μ½”λ“œλ₯Ό λŒ€λΆ€λΆ„ μ œκ±°ν•΄μ€€λ‹€.

  • 24κ°•. JPA
    JPA: Java Persistence API
    ORM ν”„λ ˆμž„μ›Œν¬κ°€ SQL을 μƒμ„±ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€μ— 객체λ₯Ό μ €μž₯ν•΄μ€€λ‹€.
    β†’ 개발 생산성이 μ¦κ°€ν•œλ‹€.
    자꾸 였λ₯˜κ°€ λ‚¬μ—ˆλŠ”λ°, μ•Œκ³  λ³΄λ‹ˆ build.gradle에 λ“€μ–΄κ°ˆ implementation 'org.springframework.boot:spring-boot-starter-data-jpa'λ₯Ό, 'data'λ₯Ό λΉΌκ³  μž…λ ₯ν•΄μ„œ 그런 κ±°μ˜€λ‹€...^^ 확인을 잘 ν•˜μž...

  • 25κ°•. μŠ€ν”„λ§ 데이터 JPA
    μŠ€ν”„λ§ 데이터 JPAλ₯Ό μ‚¬μš©ν•˜λ©΄ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 기본적인 CRUD의 μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€. (λ©”μ†Œλ“œ μ΄λ¦„λ§ŒμœΌλ‘œ μ‘°νšŒκ°€ κ°€λŠ₯)

  • 26κ°•. AOPκ°€ ν•„μš”ν•œ 상황
    AOP(Aspect Oriented Programming): 관점/μΈ‘λ©΄/양상 지ν–₯적인 ν”„λ‘œκ·Έλž˜λ°
    핡심적인 관점, 뢀가적인 κ΄€μ μœΌλ‘œ λ‚˜λˆ„μ–΄μ„œ 보고 κ·Έ 관점을 κΈ°μ€€μœΌλ‘œ 각각 λͺ¨λ“ˆν™”ν•˜κ² λ‹€λŠ” 것이닀.
    β†’ 곡톡 관심 사항에 μ μš©ν•  λ•Œ ν•„μš” (예: μ‹œκ°„ μΈ‘μ • λ“±)
    μ°Έκ³ : https://blog.naver.com/wndgndi/222765120085

  • 27κ°•. AOP 적용
    @Around("execution(* hello.hellospring..*(..))")

  • 28κ°•. λ‹€μŒμœΌλ‘œ


- ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ Lv.1 2문제

23:54 ν˜„μž¬ 인쀀 κ΅°κ³Ό 같이 문제 ν‘ΈλŠ” 쀑...^^

+) 22. 06. 15. μ–΄μ œ μΈμ€€μ΄λž‘ 같이 풀어보고 였늘 λ‚˜ 혼자 λ‹€μ‹œ μƒˆλ‘œ ν’€μ–΄λ΄„ ⬇️

  • λ¬Έμžμ—΄μ„ μ •μˆ˜λ‘œ λ°”κΎΈκΈ°
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String s;
        s = sc.next();
        int answer = 0;

		//쑰건1: sλŠ” 1이상, 5μ΄ν•˜μ˜ 길이
        if(1<=s.length() && s.length()<=5) {
        	
            //쑰건2: sμ—λŠ” μˆ«μžμ™€ λΆ€ν˜Έλ§Œ 올 수 있음
            if(Pattern.matches("^[0-9+-]*$", s)) {
            
            		//쑰건3: sλŠ” '0'으둜 μ‹œμž‘ν•˜μ§€ μ•ŠμŒ
                    if(s.charAt(0) != '0') {
                        answer = Integer.parseInt(s);
                        System.out.println(answer);
                    }
            }
        }
    }

+) 22. 06. 16. λ‚˜ 혼자 λ‹€μ‹œ μƒˆλ‘œ ν’€μ–΄λ΄„ ⬇️
μ½”λ“œκ°€ 거지? κ°™μ§€λ§Œ?? 일단은?? λ˜λŠ” 데에 만쑱. μΆ”ν›„ μ’€ 더 κ°„κ²°ν•˜κ²Œ 고쳐 봐야겠닀.

  • μ—†λŠ” 숫자 λ”ν•˜κΈ°
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();

        int[] numbers = new int[a]; //값을 μž…λ ₯받을 λ°°μ—΄
        ArrayList<Integer> arr = new ArrayList<Integer>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)); //비ꡐ할 λ°°μ—΄

        int sum = 0;

        // 쑰건1: 1 ≀ numbers의 길이 ≀ 9
        if(1 <= numbers.length && numbers.length <= 9) {

            for (int i = 0; i < numbers.length; i++) {
                numbers[i] += sc.nextInt();

                // 쑰건2: 0 ≀ numbers의 λͺ¨λ“  μ›μ†Œ ≀ 9
                if(!(0 <= numbers[i] && numbers[i] <= 9)) {
                    System.out.println("1~9 μ‚¬μ΄μ˜ 숫자λ₯Ό μž…λ ₯ν•΄μ£Όμ„Έμš”.");
                    numbers[i] -= numbers[i];
                    i--;
                    continue;
                }

                // 쑰건3: 쀑볡 체크
                for(int j = 0; j < i; j++) {
                    if(numbers[i] == numbers[j]) {
                        System.out.println("μ€‘λ³΅λ˜λŠ” μˆ«μžμž…λ‹ˆλ‹€.");
                        numbers[i] -= numbers[i];
                        i--;
                        continue;
                    }
                }

            }

            System.out.println("ν˜„μž¬ 배열에 λ“€μ–΄κ°„ κ°’: " + Arrays.toString(numbers));
            System.out.println();


            //numbers 배열을 ArrayList둜 λ³€ν™˜(κ°’ μΆ”κ°€)
            List<Integer> intList = new ArrayList<>();
            for (int element : numbers) {
                intList.add(element);
            }


            List<Integer> target2 = new ArrayList<Integer>(arr);

            target2.removeAll(intList); // arr(0~9κΉŒμ§€μ˜ λ°°μ—΄) - intList(numbers에 받은 κ°’λ“€) -> κ²ΉμΉ˜λŠ” 수 제거

            System.out.println("배열에 μ—†λŠ” κ°’: " + target2.toString());

            sum = target2.stream().mapToInt(Integer::intValue).sum(); // numbers에 μ—†λŠ” κ°’ 합계
            System.out.println("합계: " + sum);
        }
        else {
            System.out.printf("1λΆ€ν„° 9κΉŒμ§€μ˜ 숫자λ₯Ό μž…λ ₯ν•΄μ£Όμ„Έμš”.");
        }

    }

- OSI 7계측에 λŒ€ν•΄ μ•Œμ•„λ³΄μž!

OSI(Open System Interconnection): λͺ¨λ“  λ„€νŠΈμ›Œν¬ ν†΅μ‹ μ—μ„œ μƒκΈ°λŠ” μ—¬λŸ¬κ°€μ§€ 좩돌 문제λ₯Ό μ™„ν™”ν•˜κΈ° μœ„ν•˜μ—¬ κ΅­μ œν‘œμ€€κΈ°κ΅¬(ISO)μ—μ„œ ν‘œμ€€ν™”λœ λ„€νŠΈμ›Œν¬ ꡬ쑰λ₯Ό μ œμ‹œν•œ κΈ°λ³Έ λͺ¨λΈ.
β†’ 일뢀 λͺ¨λ“ˆμ˜ 변경이 μžˆλŠ” κ²½μš°μ— 전체 λͺ¨λ“ˆμ„ λ³€κ²½ν•˜λŠ” λŒ€μ‹  ν•΄λ‹Ή λͺ¨λ“ˆλ§Œμ„ λ°”κΎΈλ©΄ λ˜λ„λ‘ 함.

βœ”οΈ 1~3계측: λ„€νŠΈμ›Œν¬ 지원계측

    1. 물리: 호슀트λ₯Ό 전솑 맀체와 μ—°κ²°ν•˜κΈ° μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€ κ·œμΉ™κ³Ό 전솑 맀체의 νŠΉμ„±μ„ 닀룬닀. (예: 리피터, ν—ˆλΈŒ λ“±)
    2. 데이터링크: μ •λ³΄μ˜ 였λ₯˜μ™€ 흐름을 κ΄€λ¦¬ν•˜μ—¬ 정보 전달을 μˆ˜ν–‰ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” μ—­ν• .
      β†’ λΈŒλ¦¬μ§€λ‚˜ μŠ€μœ„μΉ˜λ₯Ό 톡해 MAC μ£Όμ†Œλ₯Ό 가지고 λ¬Όλ¦¬κ³„μΈ΅μ—μ„œ 받은 정보λ₯Ό 전달(node-to-node delivery)함.
    3. λ„€νŠΈμ›Œν¬: νŒ¨ν‚·μ„ λ°œμ‹ μ§€λ‘œλΆ€ν„° μ—¬λŸ¬ λ„€νŠΈμ›Œν¬(링크)λ₯Ό 톡해 λͺ©μ μ§€κΉŒμ§€ 전달함. (λŒ€ν‘œμ μΈ μž₯λΉ„: λΌμš°ν„°)

βœ”οΈ 4계측: 전솑측

    1. 전솑: 전체 λ©”μ‹œμ§€μ˜ ν”„λ‘œμ„ΈμŠ€-λŒ€-ν”„λ‘œμ„ΈμŠ€ 전달을 함. (예: TCP)
      솑신 ν”„λ‘œμ„ΈμŠ€μ™€ μˆ˜μ‹  ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ μ—°κ²° κΈ°λŠ₯ 제곡
      β†’ ν”„λ‘œμ„ΈμŠ€ μ‚¬μ΄μ˜ μ•ˆμ „ν•œ 데이터 전솑 지원

βœ”οΈ 5~7계측: μ‚¬μš©μž 지원 계측

    1. μ„Έμ…˜: ν†΅μ‹ ν•˜λŠ” μ‹œμŠ€ν…œλ“€ μ‚¬μ΄μ˜ μƒν˜Έμž‘μš©μ„ μ„€μ •Β·μœ μ§€ν•˜κ³  동기화 함.
    2. ν‘œν˜„: 정보λ₯Ό κ΅ν™˜ν•˜λŠ” μ‹œμŠ€ν…œμ΄ 데이터λ₯Ό ν‘œμ€€ν™”λœ λ°©λ²•μœΌλ‘œ 인식할 수 μžˆλ„λ‘ ν•΄μ£ΌλŠ” μ—­ν• . (예: EBCDIC β†’ ASCII)
    3. μ‘μš©: μ‚¬μš©μž(μ‚¬λžŒ λ˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄)κ°€ λ„€νŠΈμ›Œν¬μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ 함.
      μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜κ³ , μ „μžμš°νŽΈ, 원격 파일 μ ‘κ·Όκ³Ό 전솑, 곡유 λ°μ΄ν„°λ² μ΄μŠ€ 관리 및 μ—¬λŸ¬ μ’…λ₯˜μ˜ 뢄산정보 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•¨.

- study 계산기 문제 풀어보기

μ½”ν…Œ μ—°μŠ΅ λ¬Έμ œλ„ λͺ» ν‘ΈλŠ”λ°... 일단 곡뢀 μ’€ 더 ν•˜κ³  ν’€μ–΄λ³΄μž...^^

profile
김뉴비

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보