전체 글

· 클라우드
사이드 개발하고 있는데 ㅜㅜ FE한테 원활하게 API제공을 해주기 위해서 CI/CD 구축을 해보려고 한다. jenkins에서 너무 잘 제공해주고 있어 설치부분은 넘어가겠다. 👉🏻 jenkins AWS에서 제공하는 EC2 서비스를 이용하고 있는데.. 프리티어 메모리가 1GB라서 Jenkins를 통해서 Gradle Build할 때 ㅜㅜ 자꾸 멈치고 오래걸리는 현상 때문에 AWS EC2서버를 중지하고 재시작 해야되는일이 많아서 탄력적IP를 사용해서 테스트해보다보니ㅜㅜ 좋은게 있었다. Swap 메모리 설정을 통해서 해결하자!! 👉🏻 AWS에서 쉽게 적어주셨다. 여기서 잘 설명해주시니 밑에 링크를 참고하자! [AWS] Swap File을 이용해 EC2 메모리 부족 현상을 해결해보자 작업을 하던 중 aws ec2 ..
인터페이스를 바꾸면 인터페이스를 구현한 모든 클래스도 모두 고쳐야 하지만 java 8에서는 기본 구현을 포함하는 인터페이스를 정의하는 2가지 방법이 있다. 인터페이스 내부에 정적 메서드 사용하기 기본 구현을 제공할 수 있도록 디폴트 메서드 기능을 사용하기 기존 인터페이스를 구현하는 클래스는 자동으로 인터페이스에 추가된 새로운 메서드의 디폴트 메서드를 상속받게 된다. 더보기 각각의 호환성은 low level 공부를 좀 하고 다시 알아보자 디폴트 메서드란 무엇인가? 공개된 API에 새로운 메서드를 추가하면(구현하고 있는 클래스들 override해야되는) 문제로 java 8 에서는 호환성을 유지하면서 API를 바꿀 수 있도록 default method를 제공한다. default method는 인터페이스 구현체..
· Java
추상 클래스와 인터페이스는 존재 목적이 다르다. 추상 클래스: 자신을 상속받아서 기능을 이용하고 확장하는 용도 인터페이스: 함수의 구현을 강제하여 구현 객체의 같은 동작을 보장하는 용도 1. 클래스는 하나의 추상 클래스만 상속받을 수 있지만 인터페이스는 여러 개 구현할 수 있다. 즉 인터페이스는 여러개 구현할 수 있지만 java는 단일 상속만 허용하기 때문이다. 왜...? 단일 상속일까? 인터페이스의 목적은 함수의 구현을 강제한다고 했다. 즉 서로 다른 Interface에 같은 추상 메서드가 있을 때 Override가 필수이기 때문에 자신이 Override로 작성한 메서드가 호출이 될 것이다. public class Main extends A implements C, D { @Override public..
LocalDate, LocalTime, Instant, Duration, Period 클래스 (java.time 패키지) Month의 인덱스는 0부터 시작, DateFormat같은 기능은 Date클래스에만 작동, 스레드가 동시에 하나의 formatter로 날짜를 파싱할 때 예기치 못한 결과가 일어나는 다양한 이슈들로 인해 java8에서 시간 라이브러리(Joda-Time)의 많은 기능을 java.time 패키지로 추가했다. LocalDate와 LocalTime 사용 팩토리 메서드 of로 LocalDate 인스턴스를 만들 수 있으며 now는 시스템 시계의 정보를 이용해서 현재 날짜 정보를 얻는다. LocalDate date = LocalDate.of(1999, 9, 27); LocalDate now = Lo..
예기치 않은 NullPointException을 피하기 위해 필요한 곳에 다양한 null 확인 코드를 추가해서 null 예외 문제를 해결해야 한다. null이 들어오지 않는 영역을 제외하고는 변수를 참조할 때마다 null을 확인해야 한다. public String getCarInsuranceNameNullSafe(Person person) { String unknown = "Unknown"; if (person == null) { return unknown; } CarV1 car = person.getCar(); if (car == null) { return unknown; } Insurance insurance = car.getInsurance(); if (insurance == null) { retu..
uhanuu
몸뚱아리부터 마음가짐까지