개발자의 공부방 196

자바) 함수형 인터페이스 및 람다 표현식

자바를 오랜만에 하니깐 개짜증납니다. 맥으로 인텔리제이를 하니깐 더 짜증납니다. 단축키의 노예인데 윈도우로만 작업했다가 간만에 맥으로 하려니 너무 짜증납니다람쥐 항상 자바스크립트를 이용하면서 함수형 프로그래밍에 익숙해지고 있는 와중에 다시 자바를 하려니깐 기억이 잘 안나서 기초적인 부분을 다시 학습하고 있습니다. 그 중에 하나인 람다 표현식을 간단하게 알아보려고 합니다. 아래는 뻔하디 뻔한 인터페이스와 추상 메서드입니다. 이녀석을 이용한 익명 클래스를 한번 만들어볼까 합니다. public interface FunctionalTest { void dodo(); } 보통 아래와 같은 형태를 사용하고는 합니다. 하지만 자바8의 기능인 람다를 사용해서 간결하게 표현해보도록 하겠습니다. import java.ut..

시놀로지] 포트포워딩 후 접속 안되는 문제 해결 방법

개요 나스에서 어떤 작업을 하면서 포트를 설정하고, 이때 ASUS 공유기 내 포트포워딩 페이지에서 포트를 맞췄는데 접속이 되지 않는 문제를 해결하는 방법을 설명하겠습니다. 상황 예시 현재 doker를 이용해 컨테이너를 올린 이미지입니다. 해당 포트를 보면 로컬포트가 8989라고 되어 있습니다. (컨테이너 포트는 지금 포스팅에서 이용되지 않으니 패스!) ASUS 공유기 포트포워딩 페이지에 아래 스샷처럼 포트포워딩을 했습니다. 맨 아래를 보시면 docker_ds_nginx라고 되어 있는 부분이 위 도커 컨테이너에 설정된 로컬포트와 동일함을 볼 수 있습니다. 자, 이제 나스의 해당 IP:포트로 접속을 해서 정상적으로 페이지가 뜨는지 확인해보겠습니다. ex) 192.168.1.1:8989 이런식으로 접속! 접속..

네트워크 기초] Contents-Type Header 그리고 Accept Header

Contents-Type 컨텐츠 타입은 말 그대로 해당 컨텐츠가 무엇인지 알려주는 것을 의미하는데 정의하자면 자원의 형식을 알려주기 위해 Header에 실리는 정보를 말한다. 조금 더 쉽게 말하면 해당 리소스의 미디어 유형을 나타내는데 사용된다. Accept Header 요청한 유형을 헤더에 표기하는 것을 의미한다. 즉, 클라이언트가 나는 꼭 JSON으로 보내줘 혹은 XML로 보내줘라고 서버에 (요청)알리는데 사용되는 것이다. contents-type은 현재 전송하는 데이터가 어떤 타입인지에 대해서 설명하는 개념이고 accept header는 클라이언트가 서버한테 특정한 데이터 타입을 보낼 때 이 요청을 받은 서버는 클라이언트의 요청한 데이터타입으로만 응답을 해야하는 하나의 약속 같은 개념이다.

JS] console.log JSON Depth 표기 하는 방법.

보통 로그를 작성할 때 JSON.stringify를 사용하면 아래와 같이 사용한다. // 콘솔 로그 작성 console.log('==> log : ', JSON.stringify(events)); 출력 결과물은 아래와 같이 정신없이 나온다... ==> events_2, [{"blockNumber":12326143,"blockHash":"0x31aed0d4af44d396f6b33c86e363278496bbdacb2c0ac7a73f77044778d880c5","transactionIndex":8,"removed":false,"address":"0x229B066b8b9D198802C82b6B68397E1Da138c6F0","data":"0x","topics":["0x342827c97908e5e2f71151c0..

node] npm 배포를 해보자.

1. npm 공식홈페이지에서 회원가입을 한다. https://www.npmjs.com npm Bring the best of open source to you, your team, and your company Relied upon by more than 11 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java www.npmjs.com 2. npm 배포 명령어를 기억하자. npm publish : 내가 만든 패키지를 배포 npm unpublish --force : 내가..

Flutter] ListView or GridView 만들 때 팁

최근 강좌를 보면서 얻은 팁을 얘기해보습니다. 보통 ListView 위젯을 이용해서 레이아웃을 구성하면 잘 안되는 경우가 많습니다. item의 갯수는 10개인데 그 내용(자식의 내용)과 일치하지 않거나 혹은 높이가 무한이라서 발생되거나 등의 에러가 대표적입니다. 이런 경우 두가지 해결 방법이 있습니다. 1. shrinkWrap를 사용한다. 2. Expanded를 사용한다. 간단한 예제 코드 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( elevation: 0, backgroundColor: Colors.white, centerTitle: true, title: const Text( '이미지 검색 앱', style: TextSt..

Flutter] Null Check, Null check operator used on a null value

Null에 관련된 부분을 신경써야한다. 예를 들어 아래와 같은 코드가 있다고 했을 때 Align( alignment: Alignment.center, child: ChartSvg( url: _marketMapNotifier.chartImageMap[ widget.tickerNotifier.ticker.currencyPair]!, widthRatio: chartWidthRatio, height: chartHeight, color: getColor(), ) ), _marketMapNotifier.chartImageMap에서 chartImageMap은 Map으로 선언되어 있다. String?은 Null을 허용하고 있다. 그런데 위에 코드에서 아래와 같이 !느낌표를 사용해서 Null을 허용하지 않게 만들었다. ..