본문 바로가기

java

(26)
SpringBoot 단상 - 구성을 이해하고 할 수 있다면 진입장벽이 낮아진다 -> 이것이 정말 어렵다. 조합하다 실패가 나면 왜 실패 했는지 알기가 어렵다. - 웹서버 구축이 더이상 필요하지 않다
XML vs JSON vs YAML 데이터 샘플 출처 : https://www.genericgamedev.com/general/serialisation-comparing-xml-sdl-toml-json/ Serialisation - Comparing XML, SDL, TOML, JSON – GameDev Choosing the right script file format can be an essential decision. By comparing several alternatives we can see what we really need for our application. www.genericgamedev.com YAML의 또하나의 강점은 --- 으로 환경 변수 설정이다.
Springframework 단상 annotation에 대한 테스트 코딩을 하고 Spring 프로젝트를 구축해서 모듈 하나씩 붙여보려 하는데 막히는 게 바로 Configration과 관련된 Annotation이다. 자주 코딩할 일도 없고 보통 도메인을 주도하는 개발자가 세팅하기 때문에 직접 세팅 할 일이 없지만 모르면 이또한 답답한게 없다. 도저히 구조가 이해되지 않아서 SpringFramework 에 대해 다시 검색해 특징들을 확인해보니 어설프게 알고 있던 개념과 이를 말로 설명하려니 어렵고 어떻게 외워야 하나 싶다가 그간 테스트 코드나 현업에서 사용했던 코드를 떠올리며 특징과 연관시켜 봤다. SpringFramework의 특징인 IoC, AOP, PSA, MVC2 등등 이 모든게 Pojo 를 위한 개념이고 이는 Annotation 기..
transient 와 volatile transient와 volatile은 - 발음기호도 어렵고 - access modifier 이면서도 사용한 적도 없고 - 기능도 이해를 못하고 있었다. transient와 volatile은 모두 jvm 메모리와 관련된 키워드이며 각각 serialized와 jvm, thread, synchronized 에 대한 선지식이 있어야 이해가능한 내용이다. transient는 field가 serialized 대상 제외 되기 위한 키워드이며 serialized 에 대해 알아볼 때 이미 숙지한 내용인데 오늘 다시 검색해보니 생각의 전환을 하는 글을 봤다. "this field is for in-memory use only. don't persist or move it outside of this particular V..
shallow & deep copy Shallow Copy : 인스턴스의 reference 복사 (window os 로 비교하면 링크 복사) Deep Copy : 인스턴스의 메모리 복사 (window os로 비교하면 파일 복사) Shallow Copy List master = new ArrayList(); master.add("1"); master.add(new Member()); List feather = master; master.add("master"); feather.add("feather"); System.out.println("reference = " + (master == feather));// true System.out.println("hashcode() = " + (master.hashCode() == feather.ha..
Serializable Serializable의 패키지는 java.io.serializable 이다. Serializable 은 io 에 관한 기술이다. 객체 직렬화는 java 에서 빠지지 않고 나오는 개념임에도 그동안 byte 타입의 데이터로 변환하여 어디에 활용하는지, serialVersionUID 는 왜 만들어야 하는지 모르고 내부 개발 정책에 따라 serialVersionUID 를 생성해왔다. Serializable 는 자바 시스템 간의 프로토콜일 뿐 JSON의 역할과 동일함을 아래 Feature를 보고 깨닳았다. JSON 을 사용하기 위해 jackson 이나 json 라이브러리를 import해야 하는 것에 비해 Serializable은 사기에 가까울 정도로 간단하지만 제약이 큰편이다. java serailazable ..
Java 실행 구조 알고 하느냐 모르고 하느냐의 차이는 큰 것 같다.
Thread Dump Thread Dump 는 매번 난공불락의 개념이였고 - 웹문서의 Thread Dump 파일 로그를 보고 도대체 저 로그를 보고 어떻게 장애를 해결하는 것인지 이해할 수 가 없었다. 매번 알기를 미뤄뒀다. - 라이브 장애가 발생 했을 때 thread dump 를 알아보고 추출하는 것보다 catalina.out을 보고 원인파악을 해서 해결 해왔다. 안좋은 기억도 있다. 후임이 담당하는 웹서버중 한 대가 죽지도 살지도 않는 상태여서 후임이 확인 중에 있었다. 예전에 동일한 경험이 있어 좀비프로세스가 있는지 확인 하고 이를 강제 종료 후 다시 웹서버를 시작하도록 조언했고 장애는 빠르게 해결 했으나 원인은 알 수 없는 상태 였다. 이에 대해 다른 팀원이 오더니 후임에게 어떻게 해결 했는지 물어보고 왜 Thread..