http://blog.naver.com/PostView.nhn?blogId=heartflow89&logNo=220954420688 메모리구조는 Static, stack, heap으로 구성된다. static: 전역변수, 정적 멤버 변수와 같이 static이 붙은 것들이 메모리에 남아있다. 그래서 자바 어디에서나 호출이 가능하다. stack: 데이터의 값이 저장되는 곳으로 종료되면 메모리가 해제된다. LIFO방식으로 처리하기 때문에 마지막 데이터만 의미가 있고 이전 데이터는 지워진다. 메소드가 끝나면 종료된다. heap: 참조형 타입의 데이터를 가지고 있다. 이때 stack은 heap의 메모리참조 주소값을 가지고 있다. 그래서 heap 데이터를 가져올 수 있다. heap에 저장된 데이터가 불필요하면 jvm이..
참조: http://changyeopkim.blogspot.kr/2013/04/gradle-wrapper.html추가: http://kwonnam.pe.kr/wiki/gradle/wrapper Chapter 59. Gradle WrapperGradle Wrapper(이하 wrapper)는 Gradle 빌드를 시작하는데 가장 선호되는 방법입니다. wrapper는 윈도우의 배치 스크립트이고, 다른 운영체제의 쉘 스크립트입니다. wrapper를 통해서 Gradle 빌드를 시작할 때, Gradle이 자동으로 다운로드되고 빌드를 동작하는데 사용됩니다. wrapper는 당신이 반드시 버전 관리 시스템에서 사용해야하는 것입니다. 프로젝트에 wrapper를 함께 배포함으로써, 누구든지 Gradle을 설치할 필요없이 프..
참조: 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 잘 살펴보면, 일반적이지 않은 경로의 링크가..
참조: https://wikidocs.net/224D. 테스트 주도 개발프로그래머라면 다음과 같은 코드를 만들어야한다."Clean code that works!"TDD(Test Driven Development)는 이것을 추구하는 가장 현실적인 방법이다.수많은 하드웨어와 소프트웨어, 언어와 개발방법론, 프레임워크 등 끊임없이 쏟아져 나오는 IT업계의 신기술은 이 시대의 프로그래머에게 마냥 좋은 소식만은 아닌 것 같다. 프로그래머란 변화를 수용하지 않고는 가까운 미래마저 보장받기 어려운 직업이기 때문이다. 항상 새로운 것을 배우고 개척해야만 뒤쳐지지 않을 것이라는 부담이 우리를 억누르고 있고, 또한 일정한 나이가 지나면 지금껏 쌓아온 지식과 경험이 대부분 쓸모없는 것이 되어 버릴 것이라는 불안감이 늘 함께..
이번에 정리하고자하는 내용은 챕터 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을 ..
한글로 된 파일명을 다운로드 하는 경우, 파일이 깨졌다. 아래의 코드로 해결. 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...
Jpa + MyBatis를 세팅할때 Transaction처리는 어떻게 할까? 해답은 아래의 링크에서 찾았다. https://stackoverflow.com/questions/2673678/what-transaction-manager-should-i-use-for-jbdc-template-when-using-jpa 기본적으로 JpaTransactionManage 가 2개의 Transaction을 모두 처리할 수 있다.
대략 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();} 위 코드가 논리적으로 문제점은 없지만, 다음과 같은 성능상의 문제점을 안고 있다. 소규모의 많..
- Java
- mysql
- Gradle
- web
- BigData
- API
- 모두의딥러닝
- javascript
- spring
- Maven
- TDD
- 파이썬
- memory
- 텐서플로우
- python
- spark
- Docker
- AWS
- 머신러닝
- 점프투파이썬
- tensorflow
- mybatis
- Error
- NIO
- 중앙정보처리학원
- AI
- serverless
- Configuration
- ML
- executor
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |