본문 바로가기

분류 전체보기142

[Linux] 심볼릭링크(Symbolic link) 만들기 ln -s [Linux] 심볼릭 링크 만들기 리눅스를 사용하다보면 심볼릭링크라는 단어는 한번씩 들어봤을텐데 윈도우의 바로가기 같은 역할을 합니다. 사용하는 용도는 목적에따라 여러가지가 될수있습니다. 리눅스에서 프로그램을 컴파일하는데 makefile이 참조 하는 라이브러리 폴더의 경로를 지정해줄수도있고 자주 실행하는 프로그램의 실제 경로가 복잡하여 home 경로에 서 바로 실행하고싶을때 사용할수도 있습니다. 심볼릭링크 생성 심볼릭링크를 만들기위해서는 새로만들 링크의 이름과 원본 파일 혹은 디렉터리의 경로가 필요합니다. $ ln -s [원본 경로] [링크 이름] 예를들어 리눅스에서 웹서버를 운영하는데 톰캣에있는 server.xml을 자주 수정해야됩니다. 제 시스템에서 해당 파일의 경로는 /usr/local/tomcat.. 2022. 1. 27.
[Kafka] 오프셋 커밋 동기 비동기, 리밸런스 리스너 [Kafka] 오프셋 커밋 리밸런스 리스너 지난번에 카프카 컨슈머의 기본예제와 중요개념에 대해 설명했고 이번엔 카프카 컨슈머의 주요 옵션들과 동기, 비동기 오프셋 커밋 방식과 리밸런싱, 파티션할당에 대한 예제 코드를 만들고 테스트 해보겠습니다. Kafka Consumer Client 주요 옵션 컨슈머 프로그램을 실행할때 필요한 필수옵션과 선택옵션들이 있습니다. 필수 옵션 옵션설명 bootstrap.servers카프카 브로커 서버의 주소와 포트를 입력한다. 브로커 서버가 여러대일 경우 2개이상의 서버정보를 입력하여 특정 브로커 서버가 장애시에도 다른 서버를 통해 데이터를 처리할수 있다.key.deserializer레코드 메시지 키를 역직렬화하는 클래스 지정value.deserializer레코드 메시지 값을.. 2022. 1. 24.
[Kafka] 리밸런싱 오프셋 커밋 subscribe poll 개념 설명 [Kafka] 리밸런싱 오프셋 커밋 subscribe poll 개념 설명 이번에는 Kafka Producer에 이어서 Kafka Consumer 프로그램을 만들어보도록 하겠습니다. 컨슈머의 역할은 프로듀서가 카프카 토픽에 전송한 데이터를 사용하기 위해 가져오는 동작을 수행합니다. Kafka Consumer 예제 기본 프로젝트 구성은 이전에 Kafka Producer를 만들때와 동일하게 만들고 TestConsumer.java 라는 클래스를 생성하여 다음과 같이 코드를 입력합니다. IntelliJ 에서 Kafka Producer Client 만들기 [TestConsumer.java] import lombok.extern.slf4j.Slf4j; import org.apache.kafka.clients.cons.. 2022. 1. 21.
[발산역/마곡 맛집] 샤브20 고기무한리필 샤브샤브 방문후기!! 발산역 고기무한리필 샤브20 방문후기!! 여자친구가 집에 놀러오면 보통 집에서 음식을 같이 만들어서 먹었는데 이번엔 오랜만에 점심을 밖에 나가서 먹기로 했습니다!! 원래는 발산역 근처에 있는 육회 연어 무한리필집인 김천재의 육회반한연어 마곡점을 가려고 했는데 영업시간인걸 확인하고 갔는데도 영업을 안하고 있더라고요,,, 둘이 한껏 기대하고 갔는데 일단 아쉬움을 뒤로하고 다른곳을 찾아보다가 샤브샤브가 끌린다는 여자친구가 찾은 샤브20 식당에 가봤습니다!! 샤브 20 발산역점 로드뷰길찾기지도 크게 보기 영업정보 [영업시간] 평일 : 11:00 ~ 22:00 (브레이크 타임 15:00 ~ 17:00) 주말 : 11:00 ~ 22:00 [가격] 평일점심 : 18,900 평일저녁 / 주말 : 23,900 식당은 발.. 2022. 1. 9.
[Java] 스트림 컬렉션 차이점 filter sort map collect [Java8] 스트림 (Stream) 기존의 Java에서 컬렉션 데이터를 처리할때 특정 조건에 따라 필터링을 하려면 복잡한 과정을 거쳐야 했습니다. 반면에 SQL 문법의 경우 사용자가 원하는 조건의 데이터 목록을 검색할때 명시적이고 간단한 방법을 이용했는데 Java8 에서 새로 추가된 기능인 스트림은 Java의 컬렉션 데이터에 대해 SQL 질의문 처럼 데이터를 처리할수 있는 기능을 가지고 있습니다. 스트림(Stream)이란?? 기존 루프문 처리의 문제점 기존 Java에서 컬렉션 데이터를 처리할때는 for, foreach 루프문을 사용하면서 컬렉션 내의 요소들을 하나씩 다루었습니다. 간단한 처리나 컬렉션의 크기가 작으면 큰 문제가 아니지만 복잡한 처리가 필요하거나 컬렉션의 크기가 커지면 루프문의 사용은 성.. 2021. 12. 28.
[Java] 시간 측정하기 System currentTimeMillis [Java] 코드 실행시간 측정하기 개발을 하다보면 내가 작성한 코드의 효율성을 알아보기 위해 주로 시간을 측정합니다. 또한 어느 부분에서 딜레이가 걸리는지 확인하기 위해 사용할수도 있습니다. 디버깅 중단점을 걸어서 확인할수도 있지만 매번 중단점을 넘겨줘야 해서 코드로 시간을 측정 하는 방법이 편리합니다. Java 현재시간 측정 함수 Java 에서 기본적으로 제공하는 함수중 System.currentTimeMillis 함수를 이용하면 현재 시간을 밀리세컨드 단위로 출력할수 있습니다. [System.currentTimeMillis] System.java 클래스에 있는 함수 설명을 보면 1970년 1월1일 UTC 시간 기준으로 현재까지의 시간 차이를 밀리 세컨드 단위로 출력한 값입니다. Returns the.. 2021. 12. 24.
[홍대 맛집] 바다회사랑 대방어 포장 후기!! #대방어 #홍대 횟집 홍대 방어회 맛집 바다회사랑 지난주에 홍대로 데이트를 갔을때 여자친구가 알려준 방어회 전문 횟집이 있었는데 요즘 방어가 제철이기도 해서 한번가보기로 했습니다 ㅎㅎ 로드뷰길찾기지도 크게 보기 영업 정보 영업 시간 => 14:30 ~ 23:30 대방어(소) : 59,000₩ 대방어(중) : 79,000₩ 대방어(대) : 95,000₩ 홍대입구역 2번 출구에서 5분정도 걸으면 나옵니다. 저희는 처음부터 포장할 생각으로 갔었는데 바다회사랑 식당 입구를 보니 사람들이 엄청나게 많더라고요!! 가게 출입문 앞에는 대기번호를 등록할수있는 키오스크가 있었는데 등록을 해보니 대기번호가 170번정도 였습니다 ㅋㅋㅋ 실제로 들어갔다 나온사람들을 생각하면 실제로 대기팀이 170보다는 적겠지만 가게 내부가 좁다보니 매장에서 드실.. 2021. 12. 19.
[Java] 람다표현식의 조합과 Comparator, Predicate, Function 디폴트 메서드(Default method) [Java8] 람다 표현식 조합, 디폴트 메서드 Java8 의 함수형 인터페이스들중 몇몇은 람다표현식을 조합한 유틸리티 메서드를 제공합니다. 람다 표현식의 조합이란 간단한 여러개의 람다 표현식을 조합하여 복잡한 람다표현식을 만드는 것입니다. 하지만 우리는 함수형 인터페이스는 단일 추상메서드(Single Abstract Method) 만을 가지는 인터페이스라고 배웠는데 별도의 유틸리티 메서드를 가진다고 하니 이해가 되지 않을수 있습니다. 여기서 말하는 유틸리티 메서드는 디폴트 메서드(Default Method) 입니다. 디폴트 메서드(Default Method) Java8 에서 새로 추가된 기능중 하나인 디폴트 메서드는 default 키워드를 이용하여 생성합니다. 클래스의 인스턴스로 접근할수 있으며 인터페.. 2021. 12. 16.