http://blog.naver.com/PostView.nhn?blogId=heartflow89&logNo=220954420688 메모리구조는 Static, stack, heap으로 구성된다. static: 전역변수, 정적 멤버 변수와 같이 static이 붙은 것들이 메모리에 남아있다. 그래서 자바 어디에서나 호출이 가능하다. stack: 데이터의 값이 저장되는 곳으로 종료되면 메모리가 해제된다. LIFO방식으로 처리하기 때문에 마지막 데이터만 의미가 있고 이전 데이터는 지워진다. 메소드가 끝나면 종료된다. heap: 참조형 타입의 데이터를 가지고 있다. 이때 stack은 heap의 메모리참조 주소값을 가지고 있다. 그래서 heap 데이터를 가져올 수 있다. heap에 저장된 데이터가 불필요하면 jvm이..
참조: http://www.whatwant.com/714여러 버전의 JDK를 사용하고 싶은 경우 때문에 알게된 명령어가 바로 "update-alternatives" 이다. 기본적인 사항을 한 번 살펴보기 위해서 java를 살펴보자. $ whereis java java: /usr/bin/java /usr/bin/X11/java /usr/local/java /usr/share/java 여기저기에 위치하고 있는 java 중에서 "/usr/bin/java"에 대해서 조금 더 자세히 살펴보면, $ ls -al /usr/bin/java lrwxrwxrwx 1 root root 22 6월 7 22:10 /usr/bin/java -> /etc/alternatives/java 잘 살펴보면, 일반적이지 않은 경로의 링크가..
PC 주문접수 프로그램에서 개인정보 보호법을 적용하기 위해 취소된 주문의 개인정보를 숨겨야 할 필요가 생겼습니다. ‘앱의 주소검색 모양새를 보아하니 서버에서 두개의 필드를 받아서 처리해야겠군!’ 이라고 생각한 것이 저의 첫번째 착각. 하지만 그런거 없고 주소정보는 한 필드에 저장하고 있습니다! 그러면 주문접수 앱은 어떻게 처리하고 있을까?행정동정보를 별도로 저장하여 숨김처리할 때 대신 사용한다.문제는?행정동 정보가 자신이 적은 주소의 동과 다른 경우가 있어 혼선이 있을 수 있다.그러면 어떻게 해야 할까?기존 주소정보의 패턴을 분석하여 상세정보를 추출하자. (왜그랬어!! 과거의 나!!)한방에 깔끔하게 처리하도록 정규식을 사용하자.(왜 그랬어!! 과거의 나!!) 정규식은 가장 널리 사용되는 Perl정규식을 ..
이번에 정리하고자하는 내용은 챕터 2의 3항목인 "private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자"이다. 블로그 작성 목적은 복습과 이 책을 다 읽고자하는 다짐으로 시작한다. 1. 싱글톤 디자인 패턴 중 가장 간단하면서도 자주 사용하는 패턴 중 하나이며 하나의 인스턴스만 생성되는 클래스이다. 2. 싱글톤 사용방법 나는 이책에서 예로 설명하는 싱글톤 패턴 중 static 팩토리 메소드 패턴을 자주 사용하고 있으며 이책에서는 세가지의 싱글톤 패턴 방법을 소개하고 있다. 가. public final 필드를 갖는 싱글톤 public class Y2kpooh { public static final Y2kpooh INSTANCE = new Y2kpooh(); private Y2kpooh()..
출처: https://dukeom.wordpress.com/2013/01/03/aes256-%EC%95%94%ED%98%B8%ED%99%94%EC%8B%9C-java-security-invalidkeyexception-illegal-key-size-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EC%95%88/JAVA의 기본 정책으로는 AES128 암호화 방식까지만 사용이 가능하므로 AES256 방식으로 암호화를 하게 되면 아래와 같은 Exceptioin이 발생합니다.java.security.InvalidKeyException: Illegal key size이를 해결하기 위한 방법은$JAVA_HOME/jre/lib/security 에 아래의 unlimited strength crypto file을 ..
CascadeType의 종류에는 다음과 같은 것들이 있다.CascadeType.RESIST – 엔티티를 생성하고, 연관 엔티티를 추가하였을 때 persist() 를 수행하면 연관 엔티티도 함께 persist()가 수행된다. 만약 연관 엔티티가 DB에 등록된 키값을 가지고 있다면 detached entity passed to persist Exception이 발생한다.CascadeType.MERGE – 트랜잭션이 종료되고 detach 상태에서 연관 엔티티를 추가하거나 변경된 이후에 부모 엔티티가 merge()를 수행하게 되면 변경사항이 적용된다.(연관 엔티티의 추가 및 수정 모두 반영됨)CascadeType.REMOVE – 삭제 시 연관된 엔티티도 같이 삭제됨CascadeType.DETACH – 부모 엔티..
한글로 된 파일명을 다운로드 하는 경우, 파일이 깨졌다. 아래의 코드로 해결. String zipfileNm = new String("한글".getBytes("UTF-8"), "ISO-8859-1"); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.add("Content-Type", "application/octet-stream"); responseHeaders.add("Content-Disposition", "attachment; filename=\"" + zipfileNm + "\""); return new HttpEntity(zipFile, responseHeaders); 아래의 글을 참고 하였다. 참고: https://okky...
출처: http://iloveulhj.github.io/posts/java/java-stream-api.html 함수형 인터페이스파라미터 타입반환 타입설명Supplier없음TT 타입 값을 공급한다.ConsumerTvoidT 타입 값을 소비한다.BiConsumerT, UvoidT와 U 타입 값을 소비한다.PredicateTbooleanboolean값을 반환하는 함수다.ToIntFunctionTintT 타입을 인자로 받고 각각 int 값을 반환하는 함수다.ToLongFunctionTlongT 타입을 인자로 받고 각각 long 값을 반환하는 함수다.ToDoubleFunctionTdoubleT 타입을 인자로 받고 각각 double 값을 반환하는 함수다.IntFunctionintRint를 인자로 받고 R 타입을 ..
대략 3기가정도가 되는 압축파일을 만드는 중. 계속된 메모리 부족현상으로 에러가 발생하였다. 해당 부분을 확인하여 FileSystem으로 처리를하면된다고해서 처리했는데 어떤 부분이 문제였을까? 차이점은 아래의 화면에서 확인이 가능하다. 이전 코드같은 경우는 garbage collection에서 메모리를 flush처리가 안된 것 같은데... 정확한 이유는 잘모르겠다... 아무튼 Files.copy API를 사용하더라도 환경 설정값에 따라 처리하는 방식이 다른데, 다른 부분에 대한 설명은 아래의 화면을 보면 알 수 있다. userTempFile을 사용하냐 안하냐에 따라 ByteArrayOutputStream을 사용하고 안하고의 차이가 있었다. 해당값을 true로 설정하니 더이상 에러(memory)는 발생하지..
출처: http://javacan.tistory.com/entry/134 자바 5부터 새롭게 추가된 Concurrency API 중에서 Executor, 리턴이 가능한 Callable 및 Future에 대해서 살펴본다. Executor를 이용한 쓰레드 관리 웹 서버와 같이 동시에 다수의 요청을 처리해야 하는 어플리케이션을 개발해야 할 경우 코드는 다음과 같은 형태를 띌 것이다. while(true) { request = acceptRequest(); Runnable requestHandler = new RequestHandler(request); new Thread(requestHandler).start();} 위 코드가 논리적으로 문제점은 없지만, 다음과 같은 성능상의 문제점을 안고 있다. 소규모의 많..
- spark
- NIO
- mybatis
- Maven
- python
- Java
- mysql
- 머신러닝
- 점프투파이썬
- 모두의딥러닝
- AI
- web
- Configuration
- executor
- 텐서플로우
- AWS
- Gradle
- javascript
- 파이썬
- Error
- Docker
- serverless
- memory
- 중앙정보처리학원
- BigData
- spring
- TDD
- API
- ML
- tensorflow
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |