분류 전체보기 155

Java 정리 - 6 (Generics)

Generics: 포괄적인컴파일 시에 타입 체크 (미리 사용할 타입을 명시해서 형 변환을 하지 않아도 된다. 이때 명시하는 형은 완전 일치해야한다.)ex) List example = new List();GenericBox 과 GenericBox 은 상속관계에 있지 않다.Object 등 상위 타입의 객체에 할당하게 되면 런 타입시에 타입 체크를 하게 되며 형 변환을 해야하는 번거로움이 있다.generic은 런타임시에는 타입이 없다.→ Generic 을 이용해서는 배열을 만들 수 없다. (만들 수 는 있지만 타입에 대해서 안전하지 않다.)→ 배열과 Generic은 되도록 함께 쓰지 않는다.와일드 카드 (?)API 의 유연함을 위해 type을 신경쓰지 않아도 되도록 무엇이든 받을 수 있는 자료형이다.따라서 함..

카테고리 없음 2025.02.04

Java 정리 - 5 (상속과 구현)

자바에는 다형성을 위한 전략이 상속(extends), 구현(implements) 두개가 있다.여기서 다형성이란 추상화된 상위 타입의 변수에 다른 객체들을 할당 할 수 있습니다.상속(extends)상속은 부모 class 를 이어받아 확장하는 의미로 extends 키워드를 사용한다.이때 부모 클래스에서 자식 클래스에 구현을 강제할 수 있는데 이 키워드는 abstract이다.구현(implements)구현은 다형성을 위한 방법 중 하나로 단일 상속만을 하용하는 자바에서 상속관계가 아니더라도 다형성을 활용할 수 있도록 하는 방벙다. 이는 인터페이스를 받아 구현을 하는 형태로 사용한다.이때 interface를 선언하면 안에 필드와 메서드를 선언하게 되는데인터페이스의 변수는 public static final을 생략..

Java 2025.02.04

Java 정리 - 4 (접근 제한자)

접근 제한자Java 의 접근 제한자는 총 4개이다. 이를 넓은 범위의 순서대로 나타낸다면 아래와 같다.public > protected > default(생략 가능) > private위의 default 의 접근 범위는 동일한 package이다. 이에 키워드를 package라고 헷갈리는데 주의하자클래스 제어자위의 접근 제한자는 모두 필드에 적용하는 제어자이고, 클래스의 접근 제한자의 경우 public 과 default 만이 가능하다.

Java 2025.02.04

Java 정리 - 3 (overloading, overriding)

메서드 오버로딩동일한 기능을 수행하는 메서드를 추가로 작성, 이름만 같고 파라미터를 다르게 한다.최종적인 목표는 코드의 중복을 제거하는 것이다.예시로는 여러 생성자가 여러개 일 경우에 다른 생성자들에서 가장 범위가 큰 생성자를 호출하여 코드의 중복을 제거하는 경우가 있다.메서드 오버라이딩오버라이딩의 조건메서드 시그니처가 같아야한다.접근 제한자는 부모 보다 범위가 넓거나 같아야한다.조상보다 더 큰 예외를 던질 수 없다.오버라이딩 메서드에서 조상과의 코드 중복을 방지하기 위해서 super 키워드를 활용한다.명시적으로 this() 또는 super()가 없는 경우 컴파일러가 삽입따라서 디폴트 생성자가 없는 경우에는 내가 만든 파라미터 생성자를 잊지 말고 호출하도록 주의한다.this, super추가로 this 와..

Java 2025.02.04

Java 정리 - 2 (hashCode 와 equals)

## hashCode 와 equals 먼저 Java의 모든 class는 Object를 상속받는다. 이때 Object class에는 hashCode(), equals() 함수가 있는데 이를 알아보자 ### hashCode() ``` java @IntrinsicCandidate public native int hashCode();```위는 Object() 클래스의 hashCode 함수이다.`@IntrinsicCandidate` 이 주석은 JVM에서 최적화를 하라는 어노테이션이다.위 코드의 기능은 메모리의 주소를 해시 값으로 반환하는것이다. ### equals() ```javapublic boolean equals(Object obj) {    return (this == obj); }```위는 Object의..

Java 2025.02.04

Java 정리 (연산자)

숏 서킷자바에는 논리 조건을 검사하기 위한 논리 연산자가 있다.&&, || ... 이때 자바에서는 비트 WISE 연산자인 |, & 또한 논리 연산자로서 활용할 수 있다.이때 두 연산자의 차이를 알아보자.먼저 논리 연산자인 &&, || 의 연산 결과와 |, &의 연산 결과는 같다.두 연산자의 차이는 동작 방식에 있다.먼저 논리 연산자의 경우 || 연산을 진행하면 앞의 값이 true 인 경우 뒤의 값을 보지 않는다.뒤의 값이 뭐가 오든 true 이기 때문이다.하지만, | 연산자의 경우에는 앞의 값과 뒤의 값을 모두 본 후 판단한다.이렇게 논리 연산자가 앞의 값만을 보고 판단하는것을 숏 서킷이라고 한다.

카테고리 없음 2025.02.04

[git] commit 하나로 합치기

대충 쓴 커밋이나 여러 커밋을 하나의 커밋으로 만들기 여러 커밋을 하나의 커밋으로 만드는데는 2가지 방법이 있습니다. 1. rebase 활용 우선 git log 로 몇개의 로그를 합찰지를 정합니다.그 후 로그의 개수만큼 rebase -i 명령을 합니다.git rebase -i HEAD~2 위 처럼 입력을 하게 되면   아래와 같은 화면이 나오게 됩니다.이때 합칠 commit 은 pick 대신에 s 로 변경합니다. 그후 저장을 하게 되면 합쳐지게 됩니다. 깃헙에 푸쉬 하기 위해서는  git push -f 활용

카테고리 없음 2024.08.22

postgresql 접속이 안됨

어느날 postgre server를 실행하려고 하는데 아래와 같은 error 가 발생하였다. Bootstrap failed: 5: Input/output error Try re-running the command as root for richer errors. Error: Failure while executing; `/bin/launchctl bootstrap gui/501 /Users/user/Library/LaunchAgents/homebrew.mxcl.postgresql@14.plist` exited with 5. 위의 메세지의 의미는 postgre가 제어되는 파일 homebrew.mxcl.postgresql@14.plist에 문제가 생겼다는 의미인거 같아 해당 파일을 열어 보았다. http://..

카테고리 없음 2024.05.27

[Troubleshooting] mongo atlas deployment with spring boot application

현재 배포 상황은 spring application을 github action 에서 .jar 파일로 빌드 한 후에 이를 docker hub에 올리고 ec2에서 pull 받아서 그 이미지를 run 하는 형태로 deploy 가 작동하도록 되어있습니다.  이때 mongo 설정을 해서 deploy를 했는데, 이때에 mongo 연결시에 찾지 못해서 timeout이 나며 error가 나는 경우가 발생했습니다. 1. 원인 찾기mongodb 연결의 실패의 원인을 생각해보았습니다.      1-1. network access error        - 이를 위해서 network access를 모두 열었습니다.  모든 주소를 허용하였는데도 error 가 발생했습니다.     1-2 mongo 설정파일을 두개를 쓰고 있어서..

카테고리 없음 2024.05.03