'분류 전체보기'에 해당하는 글 17건

apt-get update

모든 패키지 목록을 갱신

apt-get upgrade

모든 패키지를 최신 버전으로 업그레이드

apt-get install 패키지명

패키지를 설치

apt-get remove 패키지명

패키지를 삭제(설정파일 미삭제)

apt-get purge 패키지명

패키지를 삭제(설정파일 삭제)

apt-cache search 패키지명(또는 일부)

패키지 검색


WRITTEN BY
밤의제황

,

FCM 포트 및 방화벽

조직에 인터넷 트래픽 송수신을 제한하는 방화벽이 있으면 모바일 기기의 FCM 연결을 허용하도록 구성해야 네트워크의 기기에서 메시지를 수신할 수 있습니다. FCM은 대개 포트 5228을 사용하지만 5229 및 5230을 사용하는 경우도 있습니다.

발신 연결의 경우 Google IP 범위가 매우 자주 변경되며 개발자의 방화벽 규칙이 오래되면 사용자 경험에 영향을 줄 수 있으므로 FCM에서 특정 IP를 제공하지 않습니다. IP 제한 없이 포트 5228~5230을 허용하는 것이 가장 좋습니다. 하지만 IP 제한이 있어야 한다면 Google ASN 15169에 나와 있는 IPv4 및 IPv6 블록의 모든 IP 주소를 허용해야 합니다. 목록의 크기가 크며 규칙을 매월 업데이트하도록 계획을 세워야 합니다. 방화벽 IP 제한으로 인해 발생하는 문제는 보통 간헐적이며 진단하기 어렵습니다.

수신 메시지용으로 열어야 하는 포트:

  • 5228
  • 5229
  • 5230

발신 연결을 허용하는 포트:

다음 중 하나(1번 옵션 권장):

  1. IP 제한 없음
  2. Google ASN 15169에 나와 있는 IP 블록에 포함된 모든 IP 주소: 한 달에 한 번 이상 업데이트해야 합니다.

https://firebase.google.com/docs/cloud-messaging/concept-options?hl=ko

'developer' 카테고리의 다른 글

mac 리셋  (0) 2018.08.14
Apache Camel VS Spring Integration  (0) 2018.01.24
iOS push message 버전별 변경 이력  (0) 2018.01.12
맥 숨김파일보기  (0) 2017.04.04
[HTML5] Application Cache  (0) 2017.03.31

WRITTEN BY
밤의제황

,

mysql 이미지 다운

docker pull mysql 

or

docker pull mysql:5.7

$ docker pull mysql 
Using default tag: latest
latest: Pulling from library/mysql
0a4690c5d889: Pull complete 
98aa2fc6cbeb: Pull complete 
0777e6eb0e6f: Pull complete 
2464189c041c: Pull complete 
b45df9dc827d: Pull complete 
b42b00086160: Pull complete 
bb93567627c7: Pull complete 
bda91ab2ec35: Pull complete 
50b4c0c50b33: Downloading [=============>                                     ]  24.73MB/89.55MB
70c2999bc788: Download complete 
3cf3e568e51b: Download complete 

 

이미지 확인

docker images

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               latest              2151acc12881        8 days ago          445MB

 

컨테이너 실행

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name doc-mysql -v /Users/mysql:/var/lib/mysql mysql

-d : 백그라운드 모드

-p : 포트포워딩 (호스트:컨테이너)

-e : 컨테이너 환경변수

-v : 디렉터리 마운트 (호스트:컨테이너)

--name : 컨테이너명

$ docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name doc-mysql -v /Users/mysql:/var/lib/mysql mysql
2cadf7a0d90ed7a17bad3806a0138a4f3d53c5c1eabd4a63b3f3ee48e06b05e0

 

컨테이너 확인

docker ps -a

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
2cadf7a0d90e        mysql               "docker-entrypoint.s…"   41 seconds ago      Up 39 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   doc-mysql

 


WRITTEN BY
밤의제황

,

lombok 써보기

setup 2019. 6. 27. 14:41

https://projectlombok.org/download

 

Download

 

projectlombok.org

다운로드 받은 jar 파일을 실행한다.

 

이클립스등 실행파일을 선택해주고 install

 

프로젝트에 

compileOnly('org.projectlombok:lombok')

추가 maven은 maven 방식으로

 

사용될 model 객체에

 

import lombok.Data;

import lombok.EqualsAndHashCode;

@EqualsAndHashCode(callSuper=false)

@Data

 

추가

 

이제 별도의 get set없이 바로사용!

'setup' 카테고리의 다른 글

virtualBox 6.0 in ubuntu ssh 연결 설정  (0) 2019.03.26
Enable sudo without a password on MacOS  (0) 2019.03.25
mac os 외부앱 허용하기  (0) 2018.08.01
Let's Encrypt 세팅  (0) 2017.11.02
MAC 퀵룩플러그인 설치  (0) 2017.10.19

WRITTEN BY
밤의제황

,

젠킨스 노드 추가 중 인증관련 내용 중 launch agent agents via SSH를 선택하여 등록하는데

 

노드의 인증이 실패하는 경우

 

먼저 master에서 ssh-keygen 명령으로 rsa key를 생성하고

 

master의 id_rsa.pub의 내용을 node의 authorized_key 파일에 등록하여 

 

패스워드 없이 ssh 접근이 가능하도록 해야하며

 

launch agent agents via SSH 게서 사용될 인증정보에 master 의 id_rsa내용을 등록해준다


WRITTEN BY
밤의제황

,

먼저 ubuntu에 ssh server가 설치 되어있는 확인함


ssh localhost


설치되지 않은경우 설치


sudo apt-get install openssh-server




virtualBox 로 돌아가서 Tools를 선택




햄버거 메뉴를 클릭하여 네트워크 선택




Create 선택하면 자동으로 생성됨




설치된 ubuntu 인스턴스 선택




ubuntu 인스턴스의 설정 선택




네트워크 탭 선택

(어댑터1은 수정하지 않습니다 수정할경우 ubuntu에서 외부망 접속이 불가함.)




어댑터2를 아래와같이 선택

(어댑터2가 선택되지 않는경우 해당 인스턴스를 종료시켜야 함.)




ubuntu에서 ifconfig 확인후 ssh접속



'setup' 카테고리의 다른 글

lombok 써보기  (0) 2019.06.27
Enable sudo without a password on MacOS  (0) 2019.03.25
mac os 외부앱 허용하기  (0) 2018.08.01
Let's Encrypt 세팅  (0) 2017.11.02
MAC 퀵룩플러그인 설치  (0) 2017.10.19

WRITTEN BY
밤의제황

,


shell script 작성시 sudo 를 사용해야 할때 암호를 사용안하게 하려면


터미널 창에서 sudo visudo를 실행하여 


username   ALL = NOPASSWD: ALL


위와같은 내용을 추가해 주면 끝


사용자 이름을 확인하는 방법은 whoami 로 확인 가능


다른 방법으로는 


echo 암호 | sudo -S 명령어




'setup' 카테고리의 다른 글

lombok 써보기  (0) 2019.06.27
virtualBox 6.0 in ubuntu ssh 연결 설정  (0) 2019.03.26
mac os 외부앱 허용하기  (0) 2018.08.01
Let's Encrypt 세팅  (0) 2017.11.02
MAC 퀵룩플러그인 설치  (0) 2017.10.19

WRITTEN BY
밤의제황

,

mac 리셋

developer 2018. 8. 14. 17:19

SMC 리셋 방법



shift, control, option, 전원




NVRAM 리셋 방법



command(⌘), option, P, R



안전시동


Shift



'developer' 카테고리의 다른 글

FCM 사용을 위한 포트 및 방화벽 정보  (0) 2019.08.22
Apache Camel VS Spring Integration  (0) 2018.01.24
iOS push message 버전별 변경 이력  (0) 2018.01.12
맥 숨김파일보기  (0) 2017.04.04
[HTML5] Application Cache  (0) 2017.03.31

WRITTEN BY
밤의제황

,

mac 외부에서 다운로드한 앱실행시


일부, 앱이 손상되었다고 출력되는 경우


appstore나 확인된 개발자가 아닌경우가 있다


이경우 보안 및 개인정보 보호설정 화면에서 


앱허용을 체크해주어야하는데


high sierra같은경우 '모든곳'이 표시조차 되지않는다.


이경우 터미널에...


'sudo spctl --master-disable'


'setup' 카테고리의 다른 글

virtualBox 6.0 in ubuntu ssh 연결 설정  (0) 2019.03.26
Enable sudo without a password on MacOS  (0) 2019.03.25
Let's Encrypt 세팅  (0) 2017.11.02
MAC 퀵룩플러그인 설치  (0) 2017.10.19
[Ubuntu] - install jdk8 (oracle)  (0) 2017.03.29

WRITTEN BY
밤의제황

,


두 프레임 워크는 모두 동일한 목표를 공유합니다. 

중재, 라우팅, 프로토콜 적응과 같은 일반적인 통합 작업을 구현하기위한 사용하기 쉬운 메커니즘을 제공합니다. 작은 설치 공간과 오버 헤드로 눈에 띄지 않는 방식으로 기존에 임베딩 할 수 있습니다. 애플리케이션 인프라. 기본적으로 JMX를 통한 기본 관리 지원뿐만 아니라 상당한 양의 전송 어댑터등의 구현. 

기능적 관점에서 볼 때 두 프레임 워크는 상당히 동일합니다.

Apache Camel은 2007 년에 버전 1.0으로 출시되었습니다. 버전 1.0부터 Java XML뿐만 아니라 Java DSL과 Spring XML을 기반으로 만들어진 XML DSL이 함께 제공됩니다. 현재 버전 까지 다양한 언어로 추가 DSL이 있습니다. 

Spring Integration은 2 년 후, 2009 년에 버전 1.0.0에서 발표되었습니다. Spring 계열의 일부이기 때문에 XML 기반 구성이 처음에는 유일한 선택 이었지만 최근부터 Spring Integration은 Java DSL을 제공합니다.

하나의 특정 구문이 다른 구문보다 우수하다고 주장 할 수 있지만, 이는 개인적인 취향의 문제 일뿐입니다. 더 흥미로운 것은 의미론적 차이입니다. 여기 미묘하면서도 Apache Camel과 Spring Integration의 중요한 차이점이 있습니다. 표현력은 거의 같지만 Spring Integration DSL은 채널, 게이트웨이 등 하위 수준의 EIP를 노출합니다. Camel DSL은 통합의 의도에 더 중점을 두는 것처럼 보입니다 통합 코드는 일반적으로 작성된 것보다 더 자주 읽혀 지기 때문에 의사를 명확하고 간결하게 전달할 수있는 능력이 핵심적인 차별 요소입니다.

Spring Integration과 Apache Camel 샘플 코드를 살펴보면

Spring Integration은 다음과 같습니다 :

  @MessagingGateway
  public interface Cafe {
  	@Gateway(requestChannel = "orders.input")
  	void placeOrder(Order order);
  }

  private AtomicInteger hotDrinkCounter = new AtomicInteger();
  private AtomicInteger coldDrinkCounter = new AtomicInteger();

  @Bean(name = PollerMetadata.DEFAULT_POLLER)
  public PollerMetadata poller() {
  	return Pollers.fixedDelay(1000).get();
  }

  @Bean
  public IntegrationFlow orders() {
  	return f -> f
  	  .split(Order.class, Order::getItems)
  	  .channel(c -> c.executor(Executors.newCachedThreadPool()))
  	  .<OrderItem, Boolean>route(OrderItem::isIced, mapping -> mapping
  	    .subFlowMapping("true", sf -> sf
  	      .channel(c -> c.queue(10))
  	      .publishSubscribeChannel(c -> c
  	        .subscribe(s ->
  	          s.handle(m -> sleepUninterruptibly(1, TimeUnit.SECONDS)))
  	        .subscribe(sub -> sub
  	          .<OrderItem, String>transform(item ->
  	            Thread.currentThread().getName()
  	              + " prepared cold drink #"
  	              + this.coldDrinkCounter.incrementAndGet()
  	              + " for order #" + item.getOrderNumber()
  	              + ": " + item)
  	          .handle(m -> System.out.println(m.getPayload())))))
  	    .subFlowMapping("false", sf -> sf
  	      .channel(c -> c.queue(10))
  	      .publishSubscribeChannel(c -> c
  	        .subscribe(s ->
  	          s.handle(m -> sleepUninterruptibly(5, TimeUnit.SECONDS)))
  	        .subscribe(sub -> sub
  	          .<OrderItem, String>transform(item ->
  	            Thread.currentThread().getName()
  	              + " prepared hot drink #"
  	              + this.hotDrinkCounter.incrementAndGet()
  	              + " for order #" + item.getOrderNumber()
  	              + ": " + item)
  	          .handle(m -> System.out.println(m.getPayload()))))))
  	  .<OrderItem, Drink>transform(orderItem ->
  	    new Drink(orderItem.getOrderNumber(),
  	      orderItem.getDrinkType(),
  	      orderItem.isIced(),
  	      orderItem.getShots()))
  	  .aggregate(aggregator -> aggregator
  	    .outputProcessor(group ->
  	      new Delivery(group.getMessages()
  	        .stream()
  	        .map(message -> (Drink) message.getPayload())
  	        .collect(Collectors.toList())))
  	    .correlationStrategy(m ->
  	      ((Drink) m.getPayload()).getOrderNumber()), null)
  	  .handle(CharacterStreamWritingMessageHandler.stdout());
  }

}

여기에는 꽤 많은 세부 사항이 있습니다. 하지만 요점은 게이트웨이 및 채널을 상위 레벨 EIP를 구현하는 데 사용하는 것입니다.

반대로Apache Camel은 기술 도메인보다 "비즈니스"에 더 가까운 어휘를 사용하여 상위 EIP에 중점을 둡니다.

public void configure() {

  from("direct:cafe")
    .split().method("orderSplitter")
    .to("direct:drink");
    
  from("direct:drink").recipientList().method("drinkRouter");
  
  from("seda:coldDrinks?concurrentConsumers=2")
    .to("bean:barista?method=prepareColdDrink")
    .to("direct:deliveries");
  from("seda:hotDrinks?concurrentConsumers=3")
    .to("bean:barista?method=prepareHotDrink")
    .to("direct:deliveries");
    
  from("direct:deliveries")
    .aggregate(new CafeAggregationStrategy())
      .method("waiter", "checkOrder").completionTimeout(5 * 1000L)
    .to("bean:waiter?method=prepareDelivery")
    .to("bean:waiter?method=deliverCafes");
 
}

합의한 두 ​​예제는 직접 비교할 수 없습니다.

하지만 접근 방식의 근본적인 차이가 분명히 드러났습니다.

Spring Integration과 Apache Camel은 잘 설계되고 매우 능력있는 경량 통합 프레임 워크입니다. 기능 측면에서 보았을 때, 그들은 어느 정도 평등합니다. 그 중 어떤 것도 제가 현재 일하고있는 과제에서 탁월한 선택이 될 것입니다. 그러나 저처럼 선택의 여지가있는 사람이라면 Apache Camel DSL의 의미 론적 표현력, 특정 통합 흐름의 의도를 명확하게 전달할 수있는 능력이 중요한 경쟁력이라고 생각합니다.


원문

http://callistaenterprise.se/blogg/teknik/2015/10/12/apache-camel-vs-spring-integration/

'developer' 카테고리의 다른 글

FCM 사용을 위한 포트 및 방화벽 정보  (0) 2019.08.22
mac 리셋  (0) 2018.08.14
iOS push message 버전별 변경 이력  (0) 2018.01.12
맥 숨김파일보기  (0) 2017.04.04
[HTML5] Application Cache  (0) 2017.03.31

WRITTEN BY
밤의제황

,