분류 전체보기
-
-
직렬화 vs 역직렬화Java/Basics 2019. 6. 14. 14:23
■직렬화란? - 객체를 파일로 저장하거나 네트워크를 통하여 다른 곳으로 전송하려면, 객체를 바이트 형태로 일일이 분해해야함. 이 작업을 '직렬화' 라고 한다. - 다시말해, 데이터를 연속적인 데이터로 변형하여 객체를 전송 가능한 형태로 만드는 것이다. - 사용 예 : RMI, BEAN 생성 등 ■Serializable Interface - Serializable 인터페이스를 구현하면, JVM은 해당 클래스가 직렬화의 대상이라는 것을 인지하게 됨. - 타 인터페이스와 달리 구현해야 할 메소드가 없음. 단지 선언만 해두면 끝!! - 생성자, 메소드, 클래스변수를 제외한 '멤버변수'만이 직렬화 대상 - 멤버변수에 transient 제어자를 붙이면 직렬화의 대상에서 제외 - 멤버변수에 Serializable을 ..
-
코드리뷰카테고리 없음 2019. 6. 12. 21:08
■코드리뷰는 중요하다!- 왜냐하면 코드리뷰를 해야 코딩을 옳은 방법으로, 그리고 효율적으로 할 수 있게 되기 때문이다. ■업무에 있어서 소통의 필요성- 꼭 개발이 아니더라도 여러명이 일하는 곳이라면 각자 일하는 방식이 천차만별일 것이다. 각자의 일하는 방법들이 옳을 수도 있고 옳지 않을 수도 있다. 또는 효일적일 수도 있고 비효율적일 수도 있다. - 이 때, 일하는 방법에 대한 회의를 하거나 티타임을 가지며 가볍게 일하는 방식에 대해 서로가 일하는 방법에 대해 '소통'한다면!! 옳지 않은 방법으로 일하고 있던 사람은 옳은 방법으로, 비효율적으로 일하고 있던 사람은 효율적인 방법으로 일할 수 있는 새로운 관점을 얻게 된다. - 또한 위와 같이 서로간에 '소통'을 통해 업무 방법에 조금씩이라도 기준이 생겼다..
-
-
자바 빌드 툴Java/Basics 2019. 5. 21. 09:48
■컴파일이란? - 하나의 소스파일(사람이 다루기 편한 파일)을 바이트 코드 파일(컴퓨터가 다룰 수 있는 파일)로 번역하는 작업 ■빌드란? - 전처리, 전체 소스 컴파일, 링크, 각종 파일 패키징, 테스트, api문서 생성, 배포 등을수행하여 프로젝트가 서비스 가능한 하나의 산출물로 종합하는 작업. ■빌드 자동화 - ant, maven, gradle 등의 빌드 툴이 복잡한 빌드 과정을 도와준다. ■apache ant(Another Neat Tool) - 자바로 구현되어 자바 프로젝트 빌드에 최적화되어 있다. - build.xml라는 빌드 스크립트를 작성하여 빌드를 자동화. - 유연한 스크립트 작성 방식이 때로 비효율적인 경우가 생겼고 라이브러리 의존성의 필요성이 대두되어 maven이라는 새로운 빌드 툴이 ..
-
Spring 어노테이션Java/Spring 2019. 5. 20. 10:00
■Annotation- 사전적 의미는 '주석'이다. - 일반 자바 어플리케이션에서는 프로그램 실행에 직접적인 영향이 없는 주석의 역할을 충실히 수행하지만 스프링에서는 단순 주석을 넘어 막강한 영향을 끼치는 코드 장치(?) 라고 볼 수 있다. ■bean이란?- 자주 사용될 클래스들은 아예 처음부터 하나만 미리 만들어 놓고 그 객체를 여러 클래스에서 참조해 사용하면 훨씬 경제적이고 효율적이기 때문에 등장하게 된 개념!이런 클래스를 bean 클래스라고 부른다. - 클래스를 bean으로 등록시키는 어노테이션과 그렇지 않은 어노테이션으로 구분해서 아래에 정리해 봤다. ■bean으로 등록되는 Annotation- @Component- 클래스들이 스프링의 component-scan기능에 의해 스캔되어 bean으로 등..
-
자바 메모리 구조(Runtime Data Area)Java/Basics 2019. 5. 16. 10:59
■Runtime Data Area Runtime Data Area는 JVM이 프로그램을 수행하기 위해 OS로부터 할당받는 메모리 영역이다. WAS의 성능에 문제가 발생했을 때, 대부분 이 영역들이 원인이 된다. (Memory Leak 혹은 GC) Runtime Data Area는 5가지로 구분된다. PC Register JVM stack Native Method stack Heap Method Area 위 그림에서 볼 수 있다시피, 좌측 3개의 영역은 Thread별로 생성되고 우측 2개의 영역은 모든 Thread가 공유한다.●PC Register (Thread별로 1개씩 존재) Java의 PC Register는 CPU 내의 기억장치인 레지스터와는 다르게 작동한다. (Register-Base가 아닌 Sta..