[Spring] The server cannot be started because one or more of the ports are invalid. Open the server editor and correct the invalid ports. 에러 해결하기
2022. 11. 23. 21:00
Back-End/Spring
스프링에서 톰캣(서버)을 실행하려고 하면 다음과 이와 같은 에러가 발생할 때가 있다. 그럴 때는 아래의 설정이 제대로 되어있나 확인해보자. 빨간색으로 네모박스 쳐놓은, 'Tomcat admin port'가 설정되어 있지 않다면 8005로 설정한다.
[RxJava] 생산자(Publisher)와 소비자(Consumer), 연산자(Operator)
2022. 11. 15. 18:33
Programming/Java
Backpressure Starategy (배압 기능) RxJava의 기본이 되는 Flowable, Observable 등을 다루기에 앞서 Backpressure Strategy를 이해해야 한다. Backpressure Strategy는 배압 기능이라고 번역되며, 이는 통지하는 데이터의 개수를 제어하는 기능이라고 생각하면 된다. 아래와 같은 상황을 보자. 위의 상황과 같이 만약 소비자의 입장에서 한 번에 처리할 수 있는 데이터가 5개로 제한된다고 한다면, 아무리 생산자가 많은 데이터를 통지할 수 있더라도 소비자에게 최대 5개의 데이터만 전달해야 할 것이다. 이럴 때 배압 기능을 이용해 데이터의 최대 전달량을 5로 설정할 수 있는 것이다. Flowable vs Observable RxJava에서의 대표적인..
[RxJava] Reactive Streams, RxJava란 무엇인가?
2022. 11. 15. 18:22
Programming/Java
RxJava란 무엇인가? RxJava는 자바에서 리액티브 프로그래밍(Reactive Programming)을 구현하는 데 사용하는 라이브러리이다. 리액티브 프로그래밍(Reactive Programming) 이란? 데이터가 통지될 때마다 관련 프로그램이 반응(Reaction)해 데이터를 처리하는 프로그래밍 방식.이 때, 통지되는 데이터의 흐름을 데이터 스트림(Data Stream) 이라고 한다. RxJava는 데이터를 통지하는 생산자를 생성하고, 통지한 데이터를 소비자가 받아 처리하는 방식을 취하고 있다. 이러한 방식은 디자인 패턴인 옵저버(Observer) 패턴을 확장한 구조라고 볼 수 있다. 아래와 같은 예시 코드를 참고하자. public static void main(String[] args) { F..
[Git/Gerrit] 삭제된 로컬 Commit을 되살리는 방법
2022. 5. 27. 19:02
VCS/Git
Git을 사용하다보면, 로컬에서의 커밋을 실수로(?) 삭제하던, 고의로 삭제하던 어찌됐건 커밋이 삭제되어서 찾지 못하는 경우가 있다. 하지만 그 로컬 커밋을 되살려야할 때가 있는데, 이럴 때는 다음과 같은 방법으로 해결하면 된다. Reflog / Reset Reflog 명령어는 Git Tree에서는 보이지 않는 Commit들의 내용까지 보여준다. 지금까지 기록된 커밋들의 내용을 확인하고, 이 중 하나의 원하는(삭제된) 로컬 커밋이 있다면 Reset으로 복구할 수 있다. 다음과 같은 형태로 사용한다. git reflog git reset --hard
[Spring] 404 - Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.
2022. 5. 3. 21:07
Back-End/Spring
STS (혹은 Eclipse) 에서 프로젝트를 생성하고 실행했을 때, 아래와 같은 오류가 나는 경우가 있다. 이럴 때는 아래와 같이 확인해 본다. (1) 프로젝트의 Java Build Path에 Tomcat 라이브러리가 추가되어 있는지 확인 위와 같이, 프로젝트를 우클릭하고 Properties에 들어간 후 Java Build Path - Libraries 에 진입했을 때 'Apache Tomcat v9.0 ~' 등과 같은 라이브러리가 포함되어 있어야 한다. 만약 포함되어있지 않다면 추가해준다. (2) STS (or Eclipse) 재부팅... 위의 방법으로 해결되지 않는다면 IDE를 재부팅해보자...
[Android/Kotlin] ViewModel 이란? (+ LiveData 포함)
2022. 1. 14. 10:06
Mobile/Android
LiveData의 정의 ViewModel은 그 내부에서 LiveData를 사용하고 있다. 그러므로 우선 LiveData에 대해서 알아보고자 한다. 안드로이드 개발자 공식 홈페이지에서 설명하고 있는 LiveData는 아래와 같이 정의되어 있다. (링크) LiveData is a data holder class that can be observed within a given lifecycle. This means that an Observer can be added in a pair with a LifecycleOwner, and this observer will be notified about modifications of the wrapped data only if the paired LifecycleO..