[Spring Boot] JAVA 오버로딩과 오버라이딩

[Spring Boot] JAVA 오버로딩과 오버라이딩

자바의 Overloading & Overriding

자바에서 다형성을 지원하는 방법으로 메서드를 오버로딩, 오버라이딩을 할 수 있다.

  • 오버로딩(Overloading): 같은 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 것을 의미한다.
    • 리턴값만을 다르게 갖게 작성할 수 없다.

=> 오버로딩은 기존에 없던 새로운 메서드를 정의하는 것

  • 오버라이딩(Overriding): 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용 하는 것을 의미한다.
    • 상위클래스의 메서드를 하위 클래스에서 재정의하는 것이다.
    • 메서드의 이름, 파라미터의 갯수, 타입이 동일해야 하며, 주로 상위 클래스의 동작을 상속받은 하위 클래스에서 변경하기 위해 사용된다.

=> 오버라이딩은 상속 받은 메서드의 내용만 변경하는 것

자세히 보기
[Spring Boot] 데이터베이스 Update 하는 법

[Spring Boot] 데이터베이스 Update 하는 법

데이터베이스 Update하기

웹 브라우저에서 회원 수정을 하는 경우를 생각하며,

@PutMapping을 이용해서 주소를 만들어줬다. 이때 적은 주소는 @GetMapping의 주소와 동일한데, 스프링부트에서는 알아서 Get, Put을 구별해준다.

첫 번째 방법 (Save함수 사용)

주소에서 id를 받아온다. 이 id는 데이터베이스에 저장 된 id값을 불러오기 위함이다.

자세히 보기
[Spring Boot] 데이터베이스 Select 하는 법과 에러체크

[Spring Boot] 데이터베이스 Select 하는 법과 에러체크

데이터베이스의 데이터를 Select할 때 잘못 된 인수가 들어가면 어떻게 해야할까


데이터베이스 Select하기

User table을 select하기에 앞서,

UserRepository라는 인터페이스 파일을 새로 만들고, 그 UserRepository는 JpaRepository를 상속하고 있다.

1
2
3
// 자동으로 bean등록이 된다. --> @Repository 생략가능
public interface UserRepository extends JpaRepository<User, Integer> {
}

그리고 select 기능을 넣어줄 클래스파일에 DI를 해주고,

자세히 보기
[프로그래머스] Lv2.주식가격

[프로그래머스] Lv2.주식가격

출처: [코딩테스트 연습 완주하지 못한 선수]


문제

초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.


제한

  • prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
  • prices의 길이는 2 이상 100,000 이하입니다.
자세히 보기
[백준] 2503번 숫자 야구

[백준] 2503번 숫자 야구

출처: [백준] 2503번 숫자 야구


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 9137 4152 3430 45.923%

문제

정보문화진흥원 정보 영재 동아리에서 동아리 활동을 하던 영수와 민혁이는 쉬는 시간을 틈타 숫자야구 게임을 하기로 했다.

  • 영수는 1에서 9까지의 서로 다른 숫자 세 개로 구성된 세 자리 수를 마음속으로 생각한다. (예: 324)
  • 민혁이는 1에서 9까지의 서로 다른 숫자 세 개로 구성된 세 자리 수를 영수에게 묻는다. (예: 123)
  • 민혁이가 말한 세 자리 수에 있는 숫자들 중 하나가 영수의 세 자리 수의 동일한 자리에 위치하면 스트라이크 한 번으로 센다. 숫자가 영수의 세 자리 수에 있긴 하나 다른 자리에 위치하면 볼 한 번으로 센다.
자세히 보기
[프로그래머스] [2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어

[프로그래머스] [2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어

출처: [2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어


문제

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.

다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.

  • 1478 → “one4seveneight”
  • 234567 → “23four5six7”
  • 10203 → “1zerotwozero3”
자세히 보기
[Spring Boot] JPA 즉시 로딩과 지연 로딩(FetchType.EAGER or LAZY)

[Spring Boot] JPA 즉시 로딩과 지연 로딩(FetchType.EAGER or LAZY)

블로그 프로젝트 진행 중 FetchType.LAZY와 EAGER이란 것이 나왔다.

하나의 게시물을 눌렀을 때, 화면에 필수적으로 나타나야 하는 것은

  • 작성자
  • 제목
  • 내용

위 3가지가 있었고 있었고, 댓글은 바로 보여지는 경우와 접혀있다가 눌렀을 때 보이는 경우로 나눌 수 있었다.


JPA의 기본 패치 전략

- @ManyToOne, @OneToOne: 즉시로딩(FetchType.EAGER)

자세히 보기
[Spring Boot] IntelliJ에서 Live Reload 설정하기

[Spring Boot] IntelliJ에서 Live Reload 설정하기

Live Reload

  • Live Reload라는 기능은 Spring Boot로 개발하면서 자바 소스를 수정하고 저장하면 자동으로 재시작을 해주는 기능이다.

1. spring-boot-devtools 의존성 추가하기

1
developmentOnly 'org.springframework.boot:spring-boot-devtools'

2. application.yml에 추가하기

1
2
3
4
5
6
7
8
9
spring:
devtools:
livereload: # view단이 바뀌었을 때 자동으로 리로드 설정
enabled: true
restart: # 컨트롤러,모델단(classpath에 있는 파일)이 바뀌었을 때 프로젝트 재시작 설정
enabled: false

freemarker:
cache: false

3. Intelli J 설정 수정하기

자세히 보기
[백준] 2841번 외계인의 기타 연주

[백준] 2841번 외계인의 기타 연주

출처: [백준] 2841번 외계인의 기타 연주


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 256 MB 5543 2390 1881 42.605%

문제

상근이의 상상의 친구 외계인은 손가락을 수십억개 가지고 있다. 어느 날 외계인은 기타가 치고 싶었고, 인터넷에서 간단한 멜로디를 검색했다. 이제 이 기타를 치려고 한다.

보통 기타는 1번 줄부터 6번 줄까지 총 6개의 줄이 있고, 각 줄은 P개의 프렛으로 나누어져 있다. 프렛의 번호도 1번부터 P번까지 나누어져 있다.

자세히 보기
[백준] 4889번 안정적인 문자열

[백준] 4889번 안정적인 문자열

출처: [백준] 4889번 안정적인 문자열


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 2235 1068 890 46.793%

문제

여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 여기서 안정적인 문자열을 만들기 위한 최소 연산의 수를 구하려고 한다. 안정적인 문자열의 정의란 다음과 같다.

1
2
3
4
5
1. 빈 문자열은 안정적이다.
2. S가 안정적이라면, {S}도 안정적인 문자열이다.
3. S와 T가 안정적이라면, ST(두 문자열의 연결)도 안정적이다.

{}, {}{}, {{}{}}는 안정적인 문자열이지만, }{, {{}{, {}{는 안정적인 문자열이 아니다.
자세히 보기