본문 바로가기

내일배움캠프

TIL 16일차

🍎 How's the 14th day going?

오늘 팀과제에 문제가 생겨서.. 너무 정신이 없었다..

 

 

🍊코드카타 목록

  • 경기도에 위치한 식품창고 목록 출력하기
  • 2016

💡오늘 정리 목록

  • 객체화를 쓰는 방법

 

🚩오늘의 회고

 

1. 코드카타

 

1) 이름에 el이 들어가는 동물 찾기

- sql 문제 / 난이도 중하

- Like 와 % 사용에 대한 문제

- Case로 조건에 맞을 때 해당하는 값으로 변경

SELECT WAREHOUSE_ID,WAREHOUSE_NAME,	ADDRESS	,
CASE WHEN FREEZER_YN IS NULL THEN 'N' ELSE FREEZER_YN END FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '%경기도%'
ORDER BY WAREHOUSE_ID

2) 2016

센스 없이 풀었던 문제, 그래도 스트림 한번 써봐서 좋았다.

- 뭘 원하는지 모르겠는 문제,, 그냥 switch 문으로 해결

- 난이도 하

 

a. 내가 푼 코드 : 스위치 케이스로 상황에 맞춰서 날짜 더하고, 나머지 활용해서 구했다.

class Solution {
    public String solution(int a, int b) {
        String answer = "";
        int k=4;
        a-=1;
        while(a>0){
            switch(a){
                case 1,3,5,7,8,10,12->{k+=31;}
                case 2 ->{k+=29;}
                default -> {k+=30;}
            }
            a-=1;
        }
        k+=b;
        k%=7;
        answer = switch (k){
            case 0 ->("SUN");
            case 1 ->("MON");
            case 2 ->("TUE");
            case 3 ->("WED");
            case 4 ->("THU");
            case 5 ->("FRI");
            case 6 ->("SAT");
            default -> (null);

        };

        return answer;
    }
}

 

2. 오늘의 정리 목록

 

1) 객체화를 잘 쓰는 방법

객체화는 객체지향 프로그래밍에서 중요한 개념 중 하나입니다. 객체화는 추상적인 개념을 실제로 사용 가능한 객체로 변환하는 과정입니다. 객체화를 잘하는 것은 효율적이고 유지보수가 쉬운 코드를 작성하는 데 중요합니다. 여기 몇 가지 객체화를 잘하는 방법에 대한 지침이 있습니다:

  1. 적절한 클래스와 객체 식별: 객체화를 시작할 때, 문제 영역에서 필요한 클래스와 해당 클래스의 객체를 식별하는 것이 중요합니다. 이를 위해 문제를 분석하고 각 객체의 특징과 행동을 이해하는 것이 필요합니다.
  2. 의존성 관리: 객체 간의 의존성을 잘 관리하는 것이 중요합니다. 객체는 필요한 기능을 제공하면서도 다른 객체와의 의존성을 최소화해야 합니다. 이를 위해 인터페이스를 사용하여 의존성을 낮추고 결합도를 최소화하는 것이 좋습니다.
  3. 캡슐화: 캡슐화는 객체의 상태와 행동을 하나의 단위로 묶는 것을 의미합니다. 객체의 상태는 private로 선언되고, 외부에서는 접근자(getter)와 설정자(setter)를 통해 상태에 접근하도록 합니다. 이렇게 하면 객체의 상태가 외부에서 직접 변경되는 것을 방지하고, 객체의 내부를 보호할 수 있습니다.
  4. 단일 책임 원칙(Single Responsibility Principle, SRP) 준수: 클래스나 객체는 하나의 책임만을 가져야 합니다. 클래스가 한 가지 이상의 책임을 가지면 코드가 복잡해지고 유지보수가 어려워집니다. 따라서 클래스를 작게 유지하고 각 클래스가 하나의 책임만을 갖도록 설계하는 것이 중요합니다.
  5. 상속보다는 구성 사용: 객체 간의 관계를 설정할 때 상속보다는 구성을 사용하는 것이 더 유연한 설계를 할 수 있습니다. 상속은 강력한 결합을 만들어내고, 상위 클래스의 변경이 하위 클래스에 영향을 주므로 유연성이 떨어질 수 있습니다. 구성을 사용하면 객체 간의 관계를 느슨하게 유지할 수 있습니다.
  6. 유효한 객체 상태 유지: 객체의 상태는 항상 유효한 상태여야 합니다. 객체의 메서드를 호출할 때 객체의 상태가 유지되지 않는다면 예기치 않은 동작이 발생할 수 있습니다. 따라서 객체의 메서드를 작성할 때 유효성 검사를 수행하고, 필요한 경우 상태를 갱신하여 유효한 상태를 유지해야 합니다.

이러한 지침을 따르면 객체를 효과적으로 설계하고 구현하여 유지보수성이 높고 효율적인 코드를 작성할 수 있습니다.

 

오늘의 회고..

바빴따

'내일배움캠프' 카테고리의 다른 글

TIL 18일차  (0) 2024.05.09
TIL 17일차  (0) 2024.05.08
15일차 TIL  (2) 2024.05.03
TIL 14일차  (0) 2024.05.02
TIL 13일  (1) 2024.05.01