TIL 2023/12/05 Spring 의존성

YEONGDO·2023년 12월 7일
0

의존성이란?

의존성은 하나의 객체가 다른 객체의 기능이나 데이터에 의존하는 관계를 의미한다. 예를 들어, 'A' 클래스가 'B' 클래스의 메소드를 사용한다면, 'A'는 'B'에 의존하는 관계가 된다.

의존성 주입의 기본 개념

스프링에서 의존성 주입 방식은 세 가지

  1. 생성자 주입
  2. 세터 주입
  3. 필드 주입

ZonedDateTime

  • ZonedDateTime은 한마디로 ZoneId + Instant이다.
    즉, 특정 지역에 사는 사람이 현재 자신이 보고 있는 시간이 곳 ZonedDateTime이다.
ZoneId seoulZoneId = ZoneId.of("Asia/Seoul");
ZonedDateTime seoulTime = ZonedDateTime.now(seoulZoneId); // 실행 순간의 아시아-서울의 시간

// 존재하지 않는 곳의 시간에 접근하면 예외가 발생한다.
ZoneId noZone = ZoneId.of("Asia/Seoul");
ZonedDateTime noTime = ZonedDateTime.now(noZone); // 예외 발생

모든 시간 작업은 UTC기준으로 이뤄져야 한다. 그러나 유저에게는 자신이 위치한 지역의 시간으로 보여져야 한다. 이런 목적을 위해 ZonedDateTime을 사용하는 것이다.

ZoneId seoulZoneId = ZoneId.of("Asia/Seoul");
ZonedDateTime seoulTime = ZonedDateTime.now(seoulZoneId);
String seoulNow = seoulTime.toString(); // 2023-01-23T23:14:54.738995+09:00[Asia/Seoul]

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

알고리즘

모음제거

- 문제 설명
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

class Solution {
    public String solution(String my_string) {
        String answer = my_string;
        String[] vowels = {"a", "e", "i", "o", "u"};
        
        for (String v :vowels) {
            answer = answer.replaceAll(v,"");
        }
        return answer;
    }
}

배열 원소의 길이

- 문제 설명
문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.

class Solution {
    public int[] solution(String[] strlist) {
        int[] answer = new int[strlist.length];
        
        for (int i=0; i<answer.length; i++) {
            answer[i] = strlist[i].length();
        }
        return answer;
    }
}

배열 뒤집기

- 문제 설명
정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int[num_list.length];
        
        for (int i=0; i<num_list.length; i++) {
            answer[num_list.length - i -1] = num_list[i];
        }
        
        return answer;
    }
}

마치며...

오늘은 오전에 코드카타 후 12시에 베이직반 수업을 들었다! 실습을 했는데 이해가 잘 되는 거 같다. 또 알고리즘 스터디가 있었는데 조금밖에 풀지 않았다. 그 후 팀프로젝트의 내가 맡은 역할을 다 하기 위해 열심히 공부하였다. 확실히 팀프로젝트가 지식을 습득하기엔 좋은 거 같다~~

profile
개발 블로그

0개의 댓글