전체보기(316)
-
[2019.03.12] Sentry sample 코드 설치
raven : sentry 샘플 프로젝트raven-javaraven-python 이런 식으로 나뉜다.그런데 이건 이제 만료된 샘플 프로젝트 현재 sentry-java 로 바뀌었다.그런데 Git 허브에 있는 sentry-java 샘플 코드를 참조해서 진행하려 했으나 아무리해도 안됨-> 그냥 프로젝트 새로 만들고 이하 샘플 코드가 환경을 안타고 가장 확실하게 동작하는 듯 싶다. Sentry 8 1. pom.xml 에 sentry dependency 추가 io.sentry sentry 1.6.7 2. maven - reimport 3. 샘플 코드는 이하 동일 Sentry 9※ io.sentry의 버전이 1.6.7 일 경우 Sentry 9.0.0 페이지로 전송시 에러남 1. pom.xml 에 sentry dep..
2019.03.12 -
[2019.03.11] 애자일, 데브옵스
애자일 : 팀이 일하는 방법, 문화, 어떻게 협업 할 것인가 데브옵스 : 기획부터 배포까지의 넓은 범위, 방법과 기술 애자일 계속 실제로 만나서 커뮤니케이션 작게 여러번 고객에게 Delivery 하라 개발 후반일지라도 요구사항의 변경을 환영하라 최소 2주 최대 2달 동작하는 SW를 Delivery하라 고객과 개발자는 매일 함께 일해야한다. 동기 부여가 된 개인이 모여 프로젝트하고 지원하고 신뢰하라 정보를 교환하는데 있어서 최고의 효율을 내는 것은 직접 얼굴을보고 대화하는 것이다. 작동하는 SW로 결과를 보여줘야한다. 지속 가능한 개발, 일정한 개발 속도를 유지해야하고 그럴 수 있도록 지원하라 최신 기술을 익히는 것이 민첩성을 높인다. 요구사항이 분명할 때만 개발을 시작해라 자기주도적인 팀에서 최고의 아키..
2019.03.11 -
[2019.03.10] 이펙티브 자바 3판 (4장 : 클래스, 인터페이스 설계)
접근 제한자 모든 클래스의 멤버 접근성을 최대한 줄여라 public 클래스의 모든 멤버 변수는 private 이여야한다. 유일하게 허용되는 public 멤버 변수 : public staitc final 일 때 (단 멤버 변수가 배열이면 보안상의 문제가 존재하므로 허용하지 않는다.) 유일하게 허용되는 제한자 확장 : private 멤버를 package-private으로 풀어주는 경우 불변 클래스 불변 클래스를 만드는 방법 setter를 제공하지 않는다. 상속을 못하게 막는다. (= final class로 선언한다.) 모든 변수를 private final로 선언한다. 가변 컴포넌트를 가지고 있다면 자신 외에 접근 못하게 막는다. 불변 객체의 장점 스레드의 공유자원으로서 안전하다. 불변 객체끼리는 내부 데이터..
2019.03.10 -
[2019.03.09] 이펙티브 자바 3판 (3장 : 공통 메소드)
공통 메소드 equals hashCode toString finalize 특정 메소드의 호출이 금지 되게 하고 싶으면 오버라이딩하고 throw new AssertionError(); 를 넣어놔라 꼭 필요한게 아니면 재정의 하지말라 공통메소드를 재정의 할 때는 다음 규약을 지켜야한다. equals equals은 논리적 동일성을 판단하는 메소드다. 상위 클래스에서 재정의한 equals 는 하위 클래스의 equals에도 상속된다. equals를 재정의하면 hashcode도 재정의 해야한다. equals 메소드는 동치 관계여야한다. 반사성 : x.equals(x) = true 대칭성 : x.equals(y) = true => y.equals(x) = true 연쇄성 : x.equals(y) y.equals(z)..
2019.03.10 -
[2019.03.08] Go lang (Channel, Close)
Channel package main import "fmt" func foo(channelBufer chan int, num int) { channelBuffer
2019.03.08 -
[2019.03.08] Go lang (Go routine, sync)
Go routineConcurrency != ParallelismConcurrenct : 코어 하나가 여러개의 스레드를 마치 동시에 돌리는 것 처럼 하는 것Parallelism : 코어 여러개가 여러개의 스레드를 동시에 처리하는 것함수 앞에 go 만 붙이면 됨package main import "time"import "fmt" func say(str string) { for i := 0; i < 3; i++ { fmt.Println(str) time.Sleep(time.Millisecond * 100) }} func main() { go say("Hello") say("World")} WorldHelloWorldHelloWorldHello main 안의 모든 함수가 고루틴일 경우 아무것도 실행이 되지 않..
2019.03.08