[2일 차] 소프트웨어 엔지니어링 (Ch03 ~ Ch04)

2025. 1. 21. 17:28·LG 유플러스 유레카/소프트웨어 엔지니어링

25/01/21 (화)

오늘의 비타민 토크는 자기소개로 시작했습니다.

당분간은 자기소개를 돌아가면서 하며 하루를 시작할 것 같습니다.

어제 늦은 시간까지 과제를 하다가 잠들어서 피곤했지만 물을 마시고 씻고 밥을 먹으니 괜찮아졌습니다.

 

그리고 나서 조별 발표를 했습니다.

다른 조의 발표를 보니 제가 너무 얕게 자료를 만들었나 생각이 들었습니다.

아니 그리고 발표라고 해서 PPT로 만들었는데 알고 보니 Notion으로 정리해서 발표하는 거였습니다.

 

Primitive Types과 Reference Types에서 강사님께 피드백을 받았는데요.

Reference Types가 꼭 Heap memory를 참조하지 않는다고 합니다.

쉬는 시간에 더 자세히 알아보려고 합니다.


 

1. 연산자

1) 연산자1

 

  • 연산자 : 부호, 증감 연산자인 +, -
  • 오버플로우, 언더플로우 : max값 초과시 min으로 (오버플로우) / min값 미만시 max로 (언더플로우)
  • 정확한 계산은 정수 연산으로 : 실수타입으로 사용하지 않는것이 좋다

2) 연산자2

  • 나눗셈 예외 방지 : 0으로 나누면 ArithmeticException 발생 -> 0.0으로 나누면 예외 발생X (미분느낌/사용 잘 안함)
  • 비교 연산자 : =, >, < Reference Type에서는 참조 주소끼리 비교해서 값이 같아도 false -> equals 함수로 비교 해야함

 

  • 논리 연산자 : true, false로 표현
  • 비트논리 연산자 : 1, 0으로 표현 (정수O, 실수X)
  • ★ &&, || 과 &, | 차이를 나중에 알아보자
  • || -> |로 변경하면(쇼트서킷) : 이미 전체 판명이 나더라도 나머지 판명을 이어간다

-> 강사님께서 퀴즈를 만들어서 서로 풀어보라고 하셨습니다.

 

3) 비트 이동 연산자

  • 비트 이동 연산자 : a<<b, a>>b, a>>>b
  • 대입 연산자 : int a = 10

 

4) 삼항 연산자

 

  • 삼항 연산자 : a == 100 ? "true" : "false" (처음 봄)
  • 연산자 우선순위 : 외울 필요는 없고 괄호를 잘 사용해라

강사님께서 요즘 블로그에 잘못된 정보가 너무 많다고 합니다.

문제를 블로그에서 잘못된 방법으로 해결하고 이를 다시 포스팅하여 확대, 재생산 하는게 문제가 된다고 합니다.

오피셜하게 문제를 해결하는법을 공부해야한다고 합니다.

저도 앞으로 무작정 포스팅 하기보다는 검증하고, 정확한 정보만을 전달하도록 노력해야겠습니다.

 

5) 조건문과 반복문

  • 조건문과 반복문 그리고 break,continue 등을 배웠습니다.

 

2. 실습

1) 삼항 연산자

        int score = 75;
        // score > 90 'A'
        // 90 >= score >= 80 'B'
        // 80 > score 'C' 
        char grade = score > 90 ? 'A' : ( score >= 80 ? 'B' : 'C' );
        System.out.println(grade);

처음봐서 신기했습니다.

 

2) switch case 문

            switch(score) {
                case 5, 20: System.out.println("A"); break; //조건 2개도 가능
                // lambda 사용 가능 (:와 함께는 불가)
                case 10 -> System.out.println("B");
                case 15: System.out.println("C"); break;
                default: System.out.println("D");
            }

switch문에서 정수를 제외한 실수를 사용하지 못한다는 것을 배웠습니다. 

 

3) for 문

        for (int i = 0, j = 2; i < 10 && j > 0 ; i++, j--) {
            System.out.println(i+" "+j);
        }

for문인데 i랑 j를 같은 조건에 두고 쓰는게 신기했습니다.

 

3. 마무리

1) 추가 공부

        // nested
        for (int i = 0 ; i < 4 ; i++){
            for (int j = 0; j < 6; j++) {
                System.out.printf("%d %d ", i, j);
            }
        }
  • nested : 충첩된 (단어를 몰랐습니다.)
  • printf 사용해보기 : c언어랑 똑같이 사용되습니다.
  • 삼항 연산자 : 처음 배웠습니다.
  • forEach 문 : 처음 봤습니다.

 

            int a = (int)(Math.random()*6)+1;

Math.random에서 원하는 수를 뽑는 법 (예시는 주사위 1~6)

 

2) WorkShop

챕터 4의 2번에 yield result; 라는 부분이 있었습니다.

검색해보니 Switch 블록 내에서 계산된 값을 반환하는 것이라는데 return과 같은 역할을 하는 것 같습니다.

  • 보조 강사님 답변 : yield는 return과 비슷하지 않다고 생각합니다. 비동기처리할 때 많이 쓴다고합니다. 뜻, 반환 돌려주다라는 뜻인데 누구한테 돌려주는지 중요한다. 분기가 나왔던 지점에 return 한다. 분기를 조절한다고 생각하면 좋습니다. for문의 label과 같비슷한 역할을 한다고 합니다.
  • 비동기 처리 : 병렬적으로 태스크를 수행하는 방식이다. 대규모 트래픽 처리에서 나온다고 합니다. 

 

내일 발표 주제 추천으로는 Math 라이브러리에 대해서 알아보자는 의견이 나왔습니다.

 

그리고 실수의 계산은 정수로 바꿔서 하는게 좋다고 했는데 소숫점 자릿수가 정해져있지 않거나 세기 힘든 경우라면 어떻게 계산해야 하는지에 대해서 의견이 나왔습니다.

-> BigDicimal을 이용한다고 합니다.

  • 보조 강사님 답변 : BigDicimal은 내부적으로 정수를 들고있는데 소수점이 얼만큼 움직이는지에 대한 값을 가지고있다고합니다. 즉, 정수와 소수점 위치값을 알고있으므로 소수를 알고있다는 의미입니다. 무한소수에서는 불가능하다고 합니다.

 

3) 오늘의 필기

 

 

'LG 유플러스 유레카 > 소프트웨어 엔지니어링' 카테고리의 다른 글

[4일 차] 소프트웨어 엔지니어링 (Ch06 ~ Ch07)  (3) 2025.01.23
[3일 차] 소프트웨어 엔지니어링 (Ch05 ~ Ch06)  (1) 2025.01.22
[1일 차] 소프트웨어 엔지니어링 (Ch01 ~ Ch02)  (1) 2025.01.20
'LG 유플러스 유레카/소프트웨어 엔지니어링' 카테고리의 다른 글
  • [5일 차] 소프트웨어 엔지니어링 (Ch07 ~ Ch08)
  • [4일 차] 소프트웨어 엔지니어링 (Ch06 ~ Ch07)
  • [3일 차] 소프트웨어 엔지니어링 (Ch05 ~ Ch06)
  • [1일 차] 소프트웨어 엔지니어링 (Ch01 ~ Ch02)
문태신
문태신
꾸준함은 모든 것을 이긴다.
  • 문태신
    별 될 시간
    문태신

  • 전체
    오늘
    어제
    • 전체 글 (129) N
      • LG 유플러스 유레카 (115) N
        • 강의 정리 (1)
        • 소프트웨어 엔지니어링 (8)
        • 알고리즘 (13)
        • 데이터베이스 활용 (5)
        • 미니 프로젝트 1 (3)
        • 데이터베이스 심화 (5)
        • 프론트엔드 이해 (3)
        • 깃허브 특강 (2)
        • 취업 특강 (2)
        • 스프링 프레임워크 (17)
        • REST API (10)
        • 미니 프로젝트 2 (7)
        • 프로젝트 기획 분석 설계 (5)
        • 애자일 방법론 (5)
        • 종합 프로젝트 (15)
        • 클라우드 특강 (3)
        • 최종 융합 프로젝트 (10) N
        • 회고 (1)
      • 내 맘대로 기술 공부 (1)
      • 알고리즘 공부 (5)
      • 자바 공부 (3)
      • 자격증 (2)
      • 디자인 (2)
      • 감상문 (1)
        • 책 (0)
        • 영화 (1)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
문태신
[2일 차] 소프트웨어 엔지니어링 (Ch03 ~ Ch04)
상단으로

티스토리툴바