🤝 활동/내배캠TIL

[내일배움캠프 27일차 TIL] Spring 실습과 다양한 개념

MNY 2024. 5. 24. 21:21
728x90
반응형
오늘의 진도 : Spring 숙련 주차 2주차 완강까지...

오늘도 내가 강의를 들으면서 새롭게 알게된 것 그 동안 애매했던 것을 오늘의 학습으로 정리하려고 한다.
오늘의 학습, 오늘의/지난 날의 궁금증, 코드카타, 오늘의 회고 이렇게 6개의 큰 틀로 나누어 정리할 것이다.

 

💡 오늘의 학습 키워드

- 2주차 -
cron
In

- 팀 회의 -
javadoc

- 코드카타 : 알고리즘 -
개선된 switch문
compareTo
copyOfRange

- 코드카타 : SQL -
DATE_FORMAT()
CASE_WHEN

 


 

Cron

: 특정한 시간에 특정한 작업을 시행해주는 스케쥴링 역할

  • 초, 분, 시, 일, 월, 주 순서
@Scheduled(cron = "0 0 1 * * *") // 매일 새벽 1시

 

* 공식 문서

 

CronExpression (Spring Framework 6.1.8 API)

Determine whether the given string represents a valid cron expression.

docs.spring.io

 

In

: 한 번에 여러 조건을 주기 위해 사용

folderRepository.findAllByUserAndNameIn(user, folderNames);

 

javadoc

 

* 참고한 블로그

 

[Java] Javadoc 사용하기(feat. 문서화 주석)

Javadoc이 어떤것인지 알고 있었지만, 문서화 주석에 대한 지식은 거의 없었다. 보통 라이브러리나 프레임워크의 내부 코드를 까볼때 문서화 주석의 도움을 많이 받았다. 하지만 항상 정보만 얻었

parkadd.tistory.com

 

개선된 switch문

switch (day) {
    case MONDAY, FRIDAY, SUNDAY	-> System.out.println(6);
    case TUESDAY		-> System.out.println(7);
    case THURSDAY, SATURDAY	-> System.out.println(8);
    case WEDNESDAY		-> System.out.println(9);
}

 

* 참고한 블로그

 

[Java 14] 개선된 switch 문(Enhanced Switch Expressions)

1. 개선된 switch 문이란? 2020년 3월에 출시된 Java 14부터 개선된 switch 문을 지원합니다. 기존 switch문은 깔끔하지 못하고 가독성도 떨어지며, break문의 누락으로 인한 오류 가능성도 크기 때문에 화

congcoding.tistory.com

 

compareTo

: 매개변수 문자열이 사전순으로 뒤에 있으면 양수, 같으면 0, 앞에 있으면 음수 (문자끼리 뺀 값을 리턴 )

String s1 = "abc";
String s2 = "def";
System.out.println("abc compareTo def : " + s1.compareTo(s2)); // -3
System.out.println("def compareTo abc : " + s2.compareTo(s1)); // 3
System.out.println("abc compareTo abc : " + s1.compareTo(s1)); // 0

 

copyOfRange

int[] arr = {1, 2, 3, 4, 5}
Arrays.copyOfRange(arr, 2, 5); // 2번째부터 4번째 수의 배열 [3, 4, 5]

 

DATE_FORMAT

DATE_FORMAT(CREATE_DATE, '%y-%m-%d') AS DATETIME

 

* 참고한 블로그

 

[MySQL] DATETIME 원하는 유형으로 변경 (YYMMDD)

오늘은 MySQL에서 DATETIME의 여러가지 포맷을 알아보려고한다. 찾아보면 금방찾지만 할때마다 찾는게 귀찮아서 이렇게 정리하려고한다. MySQL에서 DATETIME 타입은 YYYY-MM-DD hh:mm:ss 와 같은 형식으로 반

kig6022.tistory.com

 

CASE - WHEN

CASE
	WHEN 조건
	THEN '반환 값'
	WHEN 조건
	THEN '반환 값'
	ELSE 'WHEN 조건에 해당 안되는 경우 반환 값'
END

 


오늘의 궁금증

  • Q : system.out vs log? 왜 log를 사용해야 하는가?
    • 휘발된다
    • 에러 발생 시 추적할 수 있는 최소한의 정보가 남지 않는다.
    • 로그 출력 레벨을 사용할 수 없다
    • 성능저하의 원인이 될 수 있다

 

* 참고한 블로그

 

로깅을 System.out.println() 로 하면 안되는 이유

학습 배경 우테코 레벨3 팀프로젝트 3차 데모데이 요구사항 중 하나는 ‘디버깅할 수 있는 로그 파일 출력’ 이다. 이전까지는 로깅에 대해 전혀 신경쓰지 않고 있었는데, 슬슬 로깅에도 신경써

hudi.blog

 

  • Q : AOP?
    • A : Aspect Oriented Programming, 관점 지향 프로그래밍
    • 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것
    • 나중에 블로그 내용 다시 살펴볼 것!..

 

* 참고한 블로그

 

[Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP

| 스프링 AOP ( Aspect Oriented Programming ) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로

engkimbs.tistory.com

 

지난 날의 궁금증

  • Q : JDBC이란?
    • A : java 기반 애플리케이션의 데이터를 데이터베이스에 저장 및 업데이트하거나, 데이터베이스에 저장된 데이터를 java에서 사용할 수 있도록 하는 자바 API. java 애플리케이션에서 데이터베이스에 접근하기 위해 JDBC API를 사용하여 데이터베이스에 연동할 수 있으며, 데이터베이스에서 자료를 쿼리(Query)하거나 업데이트 하는 방법을 제공

 

* 참고한 블로그

 

[Java] JDBC란 무엇인가? - Java Database Connectivity

JDBC란? JDBC(Java Database Connectivity)는 Java 기반 애플리케이션의 데이터를 데이터베이스에 저장 및 업데이트하거나, 데이터베이스에 저장된 데이터를 Java에서 사용할 수 있도록 하는 자바 API이다. JDB

ittrue.tistory.com

 

  • Q : ORM이란?
    • A : Object Relational Mapping, 객체 - 관계 매핑. 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것

 

* 참고한 블로그

 

[DB] ORM이란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

  • Q : Local Storage vs Session Storage?
    • Local Storage
      • key/value의 pair로 데이터 저장
      • javascript/HTML을 통해서만 데이터에 접근 가능
      • no expiration data. 직접 지울때까지 남아있음
      • client에서만 저장 데이터 조회 가능
    • Session Strage
      • session 기간에만 데이터 저장. browser(또는 tab)이 꺼진다면 데이터 소실. (보안 측면 유리)
      • client 에서만 저장 데이터 조회 가능
      • 같은 주소의 URL 창을 여러개 열어도 각각의 창은 별도의 Session Storage를 가짐
    • Cookies
      • expiration data는 각 데이터마다 설정된 기간동안으로 지정
      • Server-Side에서 사용되는 데이터를 주로 저장
      • 매 api 요청마다 함께 전송 (header에 Access-Control-Allow-Credentials를 true로 설정 시)
      • HttpOnly flag를 통해 각 Cookie를 client-side에서의 접근으로 부터 보호할 수 있음

 

* 참고한 블로그

 

Local Storage vs Session Storage vs Cookies

※일반적으로 Browser에 데이터를 저장할 수 있는 3개의 공간이 있다. Local Storage, Session Storage 와 Cookies 의 차이점을 알고 어느 상황에 사용이 적합한지 알아보도록 한다. Local Storage 특징: key/value 의

zakelstorm.tistory.com

 

  • Q : yml vs properties ?
    • yml
      • 특징 : 계층적 구조, 가독성, 다양성
      • 활용 
        • 복잡한 구성이 필요한 애플리케이션
        • 다양한 환경에서의 설정 관리
        • 계층적이고 구조화된 설정이 필요한 경우
    • properties
      • 형식 : key-value 쌍으로 구성
      • 특징 : 단순성, 평면 구조, 주석 사용
      • 활용
        • 간단한 어플리케이션의 경우
        • 구성이 자주 바뀌지 않는 환경
        • 계층적 구조가 필요 없는 경우
    • 주의! yml과 properties를 함께 사용하면 properties 파일이 우선순위가 높아 yml 파일에서 설정한 내용이 덮어씌워질 수 있다.

 

* 참고한 블로그

 

[Spring] yml vs properties 설정파일 비교

application.yml VS application.properties 이 두가지를 비교해 보자 📌 서론 Spring Boot 프로젝트에서 가장 중요한 부분 중 하나는 설정 파일이다. 처음 프로젝트를 만들면 application.properties가 있는데 대부분

curiousjinan.tistory.com

 


코드 카타

* 프로그래머스로 진행

 

  • 알고리즘
    • 숫자 문자열과 영단어
    • 문자열 내 마음대로 정렬하기
    • k번째 수 정렬 
  • SQL
    • 보호소에서 중성화한 동물
    • 조건에 맞는 도서와 저자 리스트 출력하기
    • 조건별로 분류하여 주문상태 출력하기

 


오늘의 회고

  • 12시간 중 얼마나 몰입했는가?

한.. 6시간?

왜냐하면 절반은 졸은 것 같아서

 

  • 오늘의 생각

내가 공부할게 너무 많다?

그러다보니 끝이없을 것 같아서 착잡한 것도 같고..

끝이 없으니 더 좋은 것도 같고??? 잘 모르겠다.

 

일단은 새로 배우는 것들이 신기할 뿐...

 

  • 내일 학습할 것은 무엇인지

1주차 강의 다 듣고 다시 공부해야할 것들 리스트로 다시 정리한 후(노션 사용!)

실시간 수준별 분반 강의 빠르게 훝어보기!

마지막으로 영어 공부..랑 코드카타 한 문제 정도?

728x90
반응형