231109 YIL Lombok과 TIL 알고리즘

HR J·2023년 11월 9일
0

스프링 훈련

목록 보기
3/8

Lombok과 application.properties

Lombok이란?

코드 절약!

  • Lombok(이하 롬복)은, 자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메서드/생성자 등을 자동 생성해줌으로써 코
    드를 절약할 수 있도록 도와주는 라이브러리.

사용

Memo.java

  • [코드스니펫] Memo

  • Memo 클래스 @Getter

  • 클래스 위에 롬복 @Getter를 추가한 후 컴파일된 코드를 확인해보면 이처럼 직접 작성하지 않은 getUsername(),
    getContents() 메서드가 자동으로 추가되어있음을 확인할 수 있다.

  • Memo 클래스 @Setter

@Setter
public class Memo {
private String username;
private String contents;
}
...
public void setUsername(String username) {
this.username = username;
}
public void setContents(String contents) {
Spring Master - 1주차 49
this.contents = contents;
}

  • set…() 메서드를 만들어 줌.

  • Memo 클래스 @AllArgsConstructor, NoArgsConstructor

  • 기본 생성자와 모든 필드를 파라미터로 가진 오버로딩된 생성자를 만들어 줌.

  • Memo 클래스 @RequiredArgsConstructor

  • final 제어자가 붙은 필드를 파라미터로 가진 오버로딩된 생성자를 만들어 줌

application.properties

  • application.properties는 Spring과 관련된 설정을 할 때 사용되는 파일.
  • Spring과 SpringBoot의 차이에 대해 학습할 때 SpringBoot를 사용하면 개발에 필요한 설정 정보들이 자동으로 설정된다.
  • 이 파일을 사용하면 자동으로 설정되고 있는 설정 값을 쉽게 수정할 수 있다.
  • 뿐만 아니라 DB 연결 시 DB의 정보를 제공해야하는데 이러한 경우에도 이 파일을 이용하여 쉽게 값을 전달할 수 있다.
  • Apache Tomcat을 사용하여 서버를 실행하면 기본 port 설정이 8080으로 되어 있다.

  • application.properties 파일에서 server.port=8081 이렇게 설정을 하면 서버의 port 번호를 ‘8080’에서 ‘8081’로 바꿔서 실행시킬 수 있다.

오늘은 기존의 자바프로젝트 팀 외에 알고리즘 공부팀이 새로 편성되었다.
사실 그동안 알고리즘 및 코테(코딩테스트) 강의는 몇 번 들어봤으나, 다른 강의들을 듣거나 팀프로젝트를 하는데 치중했기에, 본격적으로 제대로 시작하는 것은 이번이 처음이다.
아무래도 비전공자이다 보니 아주 기초적인 것부터 차근차근 시작할 수밖에 없었다.
그래도 기존에 자바용어를 써서 어느 정도 용법이 익숙해졌다 보니, 초반 테스트들은 그렇게 어렵지만은 않았다.
알고리즘 공부를 해보니 벌써부터 모르는 부분 및 새로 알게된 부분이 생겨서 정리해본다.

자바에서 나머지, 몫 구하기

덧셈, 뺄셈은 워낙 기초적인 부분이라 다른 방법이랄 게 없었으나, 몫과 나머지를 구하는 방법은 기존의 int 명령어를 이용하는 것 말고도 색다른 방법이 있었다. 바로 java의 기능을 쓰는 것이다.

일반적으로 몫은

  • int a = 33/10;
  • 결과는 3.

나머지는

  • int b = 26%10;
  • 결과는 6.

라고 구하는 것이 일반적이다.
양수일 때는 int를 쓰더라도 상관없겠으나, 음수의 나머지를 구하는 경우에는 달라진다.

  • -26%10 => -6

나머지는 양수로 구하는 것이 수학적으로 옳은데, 음수가 나와버렸다.

그러나 다음과 같은 Math.로 시작되는 기능을 쓰면 더 엄밀하게 구할 수 있게 된다.

  • 나머지 : Math.floorMod(-26,10) => 4

몫을 구하는 명령어도 있다.

  • 몫 : Math.floorDiv(33,10) = 3
profile
Newbie Engineer&Programmer

0개의 댓글