본문 바로가기
반응형

직장이 아닌 직업을 가지자!709

Java thread에서의 Lock의 종류? 자바에서 2개의 Lock이 있는데 첫번째는 자바에서 thread간 동기화를 위해 synchronized 키워드를 사용하는것을 사용 합니다. 이런 synchronized 키워드를 사용하는 lock을 Intrinsic Lock 또는 Built-in Lock이라고 한다. // Mutual Exclusion public synchroized void intrinsicLockfunc(){ ... } // Wait synchronized(this){ ... this.wait(); ... } // signal synchronized(this){ ... this.notify(); ... } 두번째는 Java 1.5에서 java.util.concurrent.locks 패키지를 통해 제공되는 Explicit Lock이 있.. 2020. 11. 24.
Jackson Annotation Examples @JsonInclude 어노테이션 속성을 제외 하는데 사용. ex) JSONObject _connects가 null인 경우에 제외! @JsonInclude(JsonInclude.Include.NON_NULL) private JSONObject _connects; @JsonIgnoreProperties 클래스 레벨의 어노테이션이고 무시할 속성을 표시 @JsonIgnoreProperties({ "id" }) public class BeanWithIgnore { public int id; public String name; } id는 무시되는걸 알수 있다. @Test public void whenSerializingUsingJsonIgnoreProperties_thenCorrect() throws JsonPr.. 2020. 11. 17.
@Retryable 특정 Exception이 발생하면 일정 횟수만큼 재시도 할 수 있는 어노테이션이다. @EnableRetry 작성.(configuration 등) 재시도 하고 싶은 메소드에 @Retryable 작성. include : 특정 Exception이 발생할 때 retry exclude : 설정 된 Exception 재시도 제외 maxAttempts : 최대 재시도 횟수(default 3회) backoff : 재시도 pause 시간 ex) FailedStoreException 발생 시 최대 5번 시도! delay 10 @Retryable(value = { FailedStoreException.class }, maxAttempts = 5, backoff = @Backoff(delay = 10)) 참고 // // So.. 2020. 11. 17.
k8s 자격증? 온라인 시험이.. 300달러..!!! 개 비싸다 ㅋㅋ 열공하고 회사에서 지원해주면 도전해 볼 만할듯! ㅋㅋ www.cncf.io/certification/cka/ Certified Kubernetes Administrator (CKA) | Cloud Native Computing Foundation The Certified Kubernetes Administrator (CKA) program was created by the Cloud Native Computing Foundation (CNCF), in collaboration with The Linux Foundation, to help develop the Kubernetes ecosystem. www.cncf.io 2020. 11. 12.
@PreDestory란? 이 메소드는 소멸 메소드이며 이전 @PostConstruct와 상반된 개념이다. JSR-250 스펙에 따라 구현 되었다. (걍 자바에서 사용하려면 또는 springframework 2.5미만 버전에서는 javax.annotation 패키지 관련 라이브러리가 필요 함.) Springframework 2.5부터는 사용 가능! 현재 프로젝트에서는 @PostConstruct와 @PreDestory만 사용하고 있다. 하지만 찾아보니 여러가지 방법이 존재했다. 아래의 멋진 사이트를 참고하면 된다. 정리 및 공유 감사용! madplay.github.io/post/spring-bean-lifecycle-methods 그 중 흥미로운 테스트가 있었는데 바로 생성자/소멸자 호출 순서 테스트이다. import javax.a.. 2020. 11. 12.
@PostConstruct란? @PostConstruct? javax.annotation Annotation Type PostConstruct @Documented @Retention(value=RUNTIME) @Target(value=METHOD) public @interface PostConstruct The PostConstruct annotation is used on a method that needs to be executed after dependency injection is done to perform any initialization. This method MUST be invoked before the class is put into service. This annotation MUST be supported on.. 2020. 11. 10.
k8s 스터디 흔적 kubectl 롤링 업데이트 해보기! img만들고 docker build -t idock.xxx.io/teri_epi/kubia:v1 docker build -t idock.xxx.io/teri_epi/kubia:v2 docker hub에 push docker push idock.xxx.io/teri_epi/kubia:v1 docker push idock.xxx.io/teri_epi/kubia:v2 k : kubectl / rolling update! k rolling-update kubia-v1 kubia-v2 --image=idock.daumkakao.io/teri_epi/kubia:v2 kubectl 롤링 업데이트는 더이상 사용되지 않는다. Why? -> 더 나은 업데이트 방법이 존재! kubect.. 2020. 10. 22.
springboot 2.x 이상 springbatch table문제 해결 방법! id 'org.springframework.boot' version '2.3.2.RELEASE'를 사용 중! 그리고 springbatch개발을 하고 있다! 그런데? 스프링배치를 수행하면서 아래의 오류 발생~~! bad SQL grammar [SELECT JOB_INSTANCE_ID, JOB_NAME from BATCH_JOB_INSTANCE where JOB_NAME = ? and JOB_KEY = ?]; nested exception is java.sql.SQLSyntaxErrorException: Table 'BATCH_JOB_INSTANCE' doesn't exist 스프링배치는 수행관련 내용들을 메타데이터로 남겨서 테이블에 저장하는데 해당 테이블 스키마를 생성하지 않아서 문제가 되었다. https.. 2020. 8. 13.
springbatch setting시 오류: Spring Boot plugin requires Gradle 5 (5.6.x only) or Gradle 6 (6.3 or later). The current version is Gradle 4.10.3 https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix-dependency-versions Spring Boot Reference Documentation This section goes into more detail about how you should use Spring Boot. It covers topics such as build systems, auto-configuration, and how to run your applications. We also cover some Spring Boot best practices. Although there is nothing particularly spe docs.s.. 2020. 8. 6.
2020.07.16 스터디 6장 볼륨 : 컨테이너에 디스크 스토리지 연결 볼륨은 pod와 라이프사이클이 같다. 즉, pod가 생성 될 때 볼륨이 생성, 삭제될 때 볼륨이 삭제. pod 스펙에 정의 된다. pod의 모든 컨테이너에서 볼륨을 사용할 수 있다.(단, 볼륨에 액세스해야하는 각 컨테이너에 볼륨을 마운트 해야 한다.) 여러가지 종류가 존재 emptyDir: 일시적인 데이터를 저장하는 비어있는 단순 디렉토리. hostPath : 워커 노드(물리장비)의 파일 시스템에서 pod로 디렉토리를 마운트 하는데 사용. gitRepo : git스토리지의 내용을 체크아웃해 초기화된 볼륨. nfs : pod에 마운트 된 NFS 공유.(Network File System) gcePersistentDisk(구글 컴퓨트 엔진 영구 디스크) cind.. 2020. 7. 16.
초 간단 Apache Storm 맛보기(코딩) 이번 포스팅에서는 maven, springframework, java를 사용한다. 이전 시간에 apache storm 클러스터를 셋팅 해보았다. 그에 맞는 storm버전을 maven pom.xml에 작성해보자. maven관련 내용은 메이븐레파지토리에서 알수 있다. https://mvnrepository.com/artifact/org.apache.storm/storm-core/1.0.1 그리고 로깅과 스프링프레임워크 관련도 셋팅 해보자. 4.0.0 storm game 1.0-SNAPSHOT 3.2.13.RELEASE 1.0.1 4.5.2 1.7.10 1.1.2 org.springframework spring-context ${spring.version} org.springframework spring-be.. 2020. 5. 25.
초 간단 Apache Storm 맛보기(셋팅) Apache Storm을 셋팅하기 위해서 필요한 것은? 1. Open Jdk 2. Zookeeper 3. Apache Storm 4. Python Jdk와 Python은 서버에 맞게 잘 찾아서 셋팅 해준다. :) 이 포스팅에서는 pass~ 이제! 이 포스팅에서 다룰 주키퍼와 아파치 스톰! 셋팅을 시작해보자~ Zookeeper Setting download : wget http://mirror.apache-kr.org/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz 압축해제 : tar xvfz apache-zookeeper-3.5.8-bin.tar.gz 심볼릭 링크 센스 : ln -s apache-zookeeper-3.5.8-bin zookeepe.. 2020. 5. 19.
repository does not exist or may require 'docker login' k8s 상황은 이러하다. 1. Dockerfile로 이미지를 만들었다. Dockerfile + docker build 명령어 -> 이미지 뿅~ docker build -t xxxx:v0.1 . 2. docker images로 만들어진 이미지를 확인. 3. docker tag로 tag변경 가능. 4. docker push로 docker hub에 push!! docker push xxxx:v0.1 k8sdev.yaml apiVersion: apps/v1 kind: Deployment metadata: name: tomcat-deployment labels: app: tomcat spec: replicas: 1 selector: matchLabels: app: tomcat template: metadata: labe.. 2020. 2. 20.
docker hub login시 error 발생! docker login시에 error가 발생 하였다. Error saving credentials: error storing credentials - err: exit status 1, out: `error storing credentials - err: exit status 1, out: `The user name or passphrase you entered is not correct. ~/.docker/config.json { "auths" : { }, "credSstore" : "osxkeychain", "credsStore" : "desktop", "stackOrchestrator" : "swarm" } 다른 사람들과 config.json의 내용 또한 달랐다. 해결 방법 first rm /usr.. 2020. 1. 29.
const definitions are not supported by current javascript version VueJs 셋팅 시 IntelliJ에서 나오는 오류! 해결 방법은 아래와 같이 자바스크립트 버전을 변경하여 주면 된다! 끝~ 2019. 6. 12.
sourceTree 새로 설치 한 후 password를 지속적으로 묻는 경우 github > SSH and GPG keys를 설정해줬는데도 자꾸 패스워드를 물었다... cmd창에서 git config --global credential.helper osxkeychain 이 명령어를 통해 해결 하였다. 굳! 2019. 6. 4.
[acet-#2] Vue.js 무작정 해보기(용어 등 훝어보기!) # 바로 코딩을 해보고 싶으신 분은 jsfiddle로 쉽게 해볼수 있습니다. https://jsfiddle.net/chrisvfritz/50wL7mdz/ # Vue.js의 특징으로 단일 파일 컴포넌트를 들수 있다. Componet System : Vue의 또 다른 중요한 개념. # 호환성 Vue는 ECMAScript5 기능을 사용 -> IE8 이하 버전을 지원하지 않습니다. 하지만 모든 ECMAScript5 호환 브라우저를 지원합니다. # Vue Devtools * https://github.com/vuejs/vue-devtools#vue-devtools vuejs/vue-devtools ⚙️ Browser devtools extension for debugging Vue.js applications. .. 2019. 6. 4.
[acet-#1] Vue.js 무작정 해보기(기본-Vue.js? 좋은거? 먹는거?) 공식 홈피 https://vuejs.org/ 한국어버전 : https://kr.vuejs.org/v2/guide/index.html Vue.js Vue.js - The Progressive JavaScript Framework vuejs.org 구글트렌드 Vue.js를 왜 써야하나? 엄청 복잡하게 코딩을 했던 옛날! 이제는 Vue.js같은 프레임워크를 통해 빠르고 쉽게 코딩이 가능하다. 프레임워크에는 angularJS, react등도 있지만 Vue.js는 아래와 같은 특징이 있다고 한다. 약팔기(?) 접근하기 용이! 러닝커브도 낮다?! 레알? 다목적, 다용도의 고성능! 유지할 수 있는 테스트 가능한 angularJS랑 비슷한 느낌같은데.. 컴포넌트가 매우 중요한 개념인듯 싶다. 아래처럼 html, js,.. 2019. 5. 31.
맥북 scp 서버 -> 로컬(port 22: Connection refused) mac에는 기본적으로 ssh가 셋팅되어있다. 22 port를 열어주기 위해 아래와 같이 공유를 클릭 한뒤 원격 로그인을 체크 해준다! 그리고 서버에서 로컬로 scp명령어를 통해 접근하면 된다! 끝 2019. 5. 27.
org.apache.catalina.LifecycleException: Failed to start component JDK8을 사용 중이였는데 오류가 나서 톰캣 7에서 8로 변경 해주니 잘되었다. servlet-api.jar 버전 문제인것 같다.(참고 : https://okky.kr/article/266796) jar를 교체하지 않고 7에서 그냥 8로 톰캣을 교체했다. ㅋㅋ 끝~ 2019. 5. 10.
intellij X tomcat webapps 연결하기 이번에 뉴맥북을 신청하여 바꿨다. 인텔리J를 깔고 맡은 프로젝트들을 하나하나씩 옮기고 톰캣을 연동하는데..!! War까지는 만들어지는데 요녀석이 tomcat webapps에 안가는것이다. -_- 딥빡쓰.. 그래서 이것저것 해보다보니..아래와 같이 해주니 되었다. Output directory를 톰캣 webapps로 맞춰주면 된다. 참고사항으로~알아두면 좋을것 같은! 웹 애플리케이션을 배포하기 위한 패키징 유형 package(archive) 아카이브(.war, .ear) 파일로 배포 아카이브는 WAS(Tomcat)에 의해 압축이 풀린다. 파일이 많은 경우 압축을 푸는 시간이 오래 걸릴 수 있다. 원격 서버에 배포시 한 개의 파일만 전송하면 된다. WAS(Tomcat)에서 제공하는 업로드를 통한 배포 기능을.. 2019. 4. 12.
반응형