일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 설정
- srs
- 네크워크
- Eclipse
- Ecilpse
- 메소드
- IO
- FIle
- jdk설치
- 제안서
- 데이터베이스
- sequence diagram
- js꼬리
- 자바
- jdbc
- analysis
- workspace
- 소켓
- 클래스
- network
- 게시판 제작
- 이클립스 설정
- vision document
- Database
- 게시판
- mindmap
- System Requirement Specification
- custom Tag
- java
- 파일
- Today
- Total
목록Programing (39)
공적's life
변경 가능성이 없는 객체에 대해서 사용함 만약에 변경 가능성이 있다면 ..immutable을 사용하면 안됨 layer로 다른 객체를 넘길때 해당 객체를 immutable로 넘기면 thread safe하게 넘길수 있음 변경 가능성이 없기 때문에 부작용이 없다.. modelmaaper와 같은 기능을 활용하면 예를 들어 DTO를 immutable로 만들고 Entity로 쉽게 변환도 가능하고 물론 해당 객체에 추가적인 변경이 필요하면 mutable로 넘기자~! Collections.Unmodifiable에 경우 해당 인터페이스를 상속하여 add remove와 메소드가 호출될때 예외를 던져서 처리하도록 구현 되어 있다. 직접 구현하지 말고 Collections.Unmodifiable을 활용하자~! 물론 immut..
Spring boot에서 Entity를 테스트 하기 위해서는 아래와 같은 설정을 필요로 합니다. @RunWith(SpringRunner.class) @DataJpaTest@RunWith 이건 설명을 생략하고 @DataJpaTest 어노테이션에 대해서 간략히 설명하면 @Transactional @AutoConfigureCache @AutoConfigureDataJpa @AutoConfigureTestDatabase @AutoConfigureTestEntityManager@DataJpaTest은 어노테이션을 가지고 있습니다. AutoConfigure가 붙어 있는 어노테이션은 "META-INF/spring.factories" 에서 클래스를 가져와서 생성됩니다. @AutoConfigureDataJpa 이 어노테..
JPA - Persistence Context org.hibernate.Session API와 javax.persistence.EntityManager API 둘다 persistent data 즉 우리말로 번역하면 매우 어색한 영속성 데이터를 처리하기 위해서 존재한다. 이런 개념을 Persistence Context라고 한다. 해당 Context는 아래와 같은 4가지 상태를 갖는다. transient 비영속 이라고 번역 된다. 방금 인스턴스화되어서 Persistence Context와는 관계가 없고 식별자 또한 없다. managed, or persistent 영속 이라고 번역 된다. 엔티티가 Persistence Context에 저장되고 관리도고 있는 상태이고 식별자도 존재함. 하지만 데이터베이스 물리적..
js꼬리표란? 브라우저는 js를 호출할때 캐쉬를 합니다. URL 기준으로 예를 들어서 /test.js를 호출하면 다음에 같은 URL이 호출되면 서버에서 가져오는것이 아니라 로컬에서 가져오게 됩니다. 그럼 조금더 속도가 빨라지겠네요? 이런 장점도 있는 반면에 단점도 있습니다. 위 js가 내용이 바뀐다면 ?? 바뀐 내용이 아닌 기존 js가 로컬에서 호출 되기 때문에 문제가 생깁니다. 사용자 마다 다르게 동작하는 단점이 생기게 됩니다. 이것을 회피 하기 위해서 test.js?123222 이런식으로 임의이 값을 써주게 됩니다. 이렇게 하면 브라우저는 URL기반으로 캐쉬하기 때문에 캐쉬를 피할수 있습니다. 하지만 수많은 js에 저렇게 많은 임의값을 붙이기 위해서는 노가다가 필요하겠죠? 그래서 생각해낸것이 바로 c..
아무래도 모바일 브라우저 특성상 팝업을 쓰기 굉장히 까다롭습니다. 왜냐하면 마우스와 달리 터치되는 영역이 넓기때문입니다. 그렇기 때문에 브라우저에서 제공하는 팝업이 아닌 이상 레이어팝업을 띄울때 뒷에 부분이 같이 눌리기도 합니다. 실제로 동작하시는 않겠지만 눌리는 것처럼 보일때 간단하게 css를 사용해서 눌리지 않는것 처럼 보일수 있습니다.. -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 이게 그 css이고 동작하지 않게 보이는 영역 밑에 있는 모든 것에 걸어 주시면 됩니다. 예를 들어서서 body 밑에 전부다 body * {-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}이런식으로 사용하시면 됩니다.
gmail에서 파일 다운로드 할때 그냥 드래그앤 드랍 바탕화면에 갖다가 놓으면 자동으로 파일이 다운로드 됩니다. 이것이 신기해서 한번 찾아보았고 이렇게 구현 하면 됩니다. 어려울거 같지만 어렵지도 않습니다. 그럼 첫번째 step var file = document.getElementById("dragout"); file.addEventListener("dragstart",function(evt){ evt.dataTransfer.setData("DownloadURL",fileDetails); },false); 이 예제를 보시면 바로 감이 오실겁니다. 먼저 dom으로 객체를 찾고 그 객체에 이벤트를 줍니다 드래그가 시작 되었을때 다운로드 URL을 주는겁니다. 그다음 Font file 태그는 이런식으로 선언하..
일단 라이브러리 넣기 스프링과 같이 결합하여 사용하기 때문에 스프링 모듈도 넣어줘야 한다. ehcache-core-2.5.2-distribution.tar 요고를 받아서 풀고 플러스로 spring-modules-cache-0.9.jar 요것도 넣어줘야함 이렇게 두개만 넣으면 라이브러리 준비끝 나머지는 되게 간단 스프링 설정 파일에 요렇게 넣고 실제 사용 될 클래스에 인젝션 해준후에 캐쉬에 넣는 방법은 Cache cache = cacheManager.getCache(cacheName); Element element = new Element(id, timestamp); cache.put(element); 이렇게 ~ 꺼내는 법은 Cache cache = cacheManager.getCache(cacheName..
rdate -s time.bora.net && hwclock -w
onfocus="this.blur() 간단하게 이것을 주면 사라집니다. 정말 간단하죠?