전체 글

천방지축 얼렁뚱땅 다사다망한 지수의 기술공부.log
· JavaScript
비트 NOT연산자(~) 비트 NOT연산자 (~)는 피연산자의 비트를 반전시키는 연산자이며, 한글로 물결표라고 부르듯 Tilde(~,틸드) 연산자라고도 부른다. 피연산자는 32비트 정수로 변환되며 일련의 비트(0과 1)로 표현한다. 32비트를 넘어가는 숫자는 최상위 비트를 기준으로 삭제하며, 다른 비트 연산자와 마찬가지로 피연산자를 32비트 정수로 반환한다. 32비트 정수 피연산자는 2의 보수에 따라서 반전된다. 즉 최상위 비트는 음수를 표현하는데 사용한다. 9 (base 10) = 0000 0000 0000 0000 0000 0000 0000 1001 (base 2) -------------------------------- ~9 (base 10) = 1111 1111 1111 1111 1111 1111..
· DevOps/Kafka
Apache Kafka 개요 소스/타겟 애플리케이션 증가로 데이터 전송라인 복잡 및 파편화 이슈 발생 이에 따른 유지보수 어려움과 복잡함을 해결하기위해 나옴 kafka에서 queue와 같은 역할을 하는 topic에 데이터를 넣는 역할은 producer가, 가져가는 역할은 consumer가 한다.(producer와 consumer는 라이브러리 형태로 제공) 카프카는 낮은 지연과 높은 처리량을 지원하기때문에 빅(Big) 데이터 처리에는 kafka를 도입하는게 유리함 Kafka Topic 카프카에는 다양한 데이터가 들어갈 수 있는데, 그 공간을 topic이라고 함 (AMQP와는 동작 방식이 상이함) kafka에서는 topic을 여러개 생성할 수 있는데, table과 파일시스템의 폴더와 유사한 성질을 가짐 to..
· DevOps/Kafka
Apache Kafka란? 분산 스트리밍 플랫폼 데이터 파이프 라인 구성시, 주로 사용되는 오픈소스 솔루션 대용량의실시간 로그처리에 특화되어 있는 솔루션 데이터의 유실없이 안전하게 전달하는 것이 주목적인 메세지 시스템 클러스트링이 가능하므로 Fault-Tolerant한 안정적인 아키텍처와 빠른 퍼포먼스로 데이터를 처리 수평적으로 서버의 Scale-Out이 가능함 Falut-Tolerant : 시스템 내 장애가 발생하도라도 시스템에 지장을 주지않도록 설계된 시스템 Scale-Out : 서버의 대수를 늘려서 성능을 향상하는 방법 카프카의 탄생 배경 실시간 트랜잭션 처리(OLTP)와 비동기 처리가 동시에 이루어지는 시스템에서 통합된 전송영역 부재로 인한 시스템 복잡도 증대 시스템 복잡도 증대로 인한 운영업무 ..
· JavaScript
옵셔널 체이닝(?.)은 자바스크립트의 새로운 기능으로, 특정 객체가 null 또는 undefined인 경우에도 안전하게 속성에 접근할 수 있게 해줍니다. 옵셔널 체이닝이 필요한 이유 예를 들어 여러 사용자가 있을 때, 그 중 몇명은 주소 정보가 없다고 가정해보자. 이럴 때 user.address.street 을 사용하여 주소 정보를 접근하다면 에러가 발생할 수 있다. let user = {}; console.log(user.address.street); // TypeError: Cannot read property 'street' of undefined 또 다른 사례로는 브라우저에서 동작하는 코드를 개발할 때 발생할 수 있는 문제로, Javascript 를 사용해 페이지에 존재하지 않는 요소를 탐색하여 ..
· Kotlin
코틀린의 가장 매력적인 가능한 모든 널 값을 제거한다는 것이다. 코틀린에서는 변수 타입에 물음표 없이 정의하면 해당 변수에 널이 아닌 값을 요구하도록 한다. 널 허용(nullable)타입은 안전 호출 연산자(?.)나 엘비스 연산자(?:)와 결합해서 사용한다. var name: String name = "didue" 일반적으로 name 변수를 String으로 선언하여 이 변수에는 null을 할당할 수 없거나 널일 경우 코드가 컴파일 되지 않는다. 이제 변수에 널을 할당 가능하게 하려면 타입정의에 물음표를 추가하면 된다. class Person(val first: String, val middle: String?, val last: String) val doncici = Person("Luka", null,..
· Java
지난번에 작성한 JavaScript의 Spread 연산자 에 이어, 자바편을 작성해보고자 한다. JavaScript의 Spread 연산자 와 같은 연산자가 Java에는 없을까 생각했다. [ES6] Spread 와 Rest 파라미터 ( ... 연산자) (이 포스팅은 이전 블로그에서 옮겨왔습니다) 근래 JavaScript를 아주 씐나게 공부하고 있는 와중에, ECMA2015(ES6)에서 추가된 새로운 연산자가 있어 공부해보았다.😛 Spread Operator Spread 문법은 ... fascinate-zsoo.tistory.com 유레카🥸✨ 역시나 있었다. Java에서는 이를 가변인자(varargs) 라고 부른다. Javascript에서의 사용법과는 조금 차이가 있으니 이제부터 알아보도록 하자! Java ..
· 필름로그
NIKON ZOOM 500 AF Panorama 지난 3년여간 나의 서울살이를 함께 해준 남산타워🗼 남산타워 선셋은 질리지가 않는단 말이지😆ㅎㅎ 후암동 아기자기한 주택들 위로 높고 웅장하게 있던 서울역 남산뷰는 보긴 어렵겠지 나는 맨날 왜 매일 신호등인데도 이게 왜 찍고 싶었을까🤔 여름날 저녁무렵의 신림동, 알록달록 화분에 있던 내 반려식물들을 찍고싶었던 건데 초점이 너무 멀리갔다😂 그래도 느낌좋은데?
· Today, I ()
SonarScanner 소나큐브 설치 도입기였던 이전 게시글에 이어서 이번에는 SonarScanner(소나스캐너) 설치하여 코드분석을 실행해보겠습니다. 소나스캐너는 소나큐브가 버그나 취약점 등 코드 분석과 자동 리뷰할 수 있도록 코드를 읽는 스캐너입니다. 1. 소나스캐너 설치 소나큐브 설치와 마찬가지로 소나소스 다운로드페이지에서 원하는 타입에 맞추어 소나스캐너를 설치합니다. maven 또는 gradle 프로젝트를 쓰시는 분들은 dependency를 통해서 프로젝트에 설치하시거나 jenkins의 플러그인으로 설치하실 수 있습니다. 하지만 저는 서버에 직접 설치하는 방법으로 해보겠습니다! #설치경로 이동 cd /opt #소나스캐너 설치 wget https://binaries.sonarsource.com/Di..
didue
다사다망 데브로그