본문 바로가기
728x90
반응형

Back-end/JAVA & Spring135

[Java] Java의 설치 자바 프로그램의 동작 자바로 프로그램을 만들기 위해서는 아래와 같은 과정이 필요하다. 코드 작성 컴퓨터가 실행할 수 있는 형태로 코드를 컴파일 컴파일된 프로그램을 실행 용어 Java를 처음 접하면 혼란스러운 경험을 하게 되는데 다양하고 복잡한 버전들 때문이다. 이것들에 대한 정리를 좀 하고 설치를 진행하자. Java SE, JDK, JRE Java SE(Java Platform, Standard Edition)는 자바의 표준안이다. 자바라는 언어가 어떠한 문법적인 구성을 가졌는지와 같은 것들을 정의하고 있다. 이것은 구체적인 소프트웨어가 아니고 그 소프트웨어의 설계도라고 할 수 있다. 소프트웨어에서는 설계도라는 표현 대신에 명세서(spec, specification)이라는 말을 사용한다. 이 명세서에 따.. 2021. 3. 30.
[Java] JVM이란 무엇일까? JVM이란? 자바 가상 머신(Java Virtual Machine)의 약자로서, 직역하자면 '자바를 실행하기 위한 가상 기계'라고 할 수 있습니다. '가상 기계'는 SW로 구현된 HW를 뜻하는 넓은 의미의 용어이며, 컴퓨터 성능이 향상됨에 따라 점점 더 많은 HW들이 SW화 되어 컴퓨터 속으로 들어오고 있습니다. 이와 마찬가지로 '가상 컴퓨터' 또한 실제 컴퓨터가 아닌 소프트웨어로 구현된 컴퓨터라고 생각하면 됩니다. 하여튼, 자바로 작성된 에플리케이션은 모두 JVM에서만 실행되기 때문에 자바 에플리케이션이 실행되기 위해서는 반드시 JVM이 필요합니다. 일반 에플리케이션 코드는 OS만 거치고 HW로 전달되는데 비해 Java애플리케이션은 JVM을 한번 더 거치기 때문에, 그리고 실행 시에 해석(Interpr.. 2021. 3. 25.
[log4j] 설정 및 사용방법 설정방법 1. log4j.xml파일을 생성(수정) Spring 으로 세팅하면 기본적으로 log4j를 포함하고 있기 때문에 별도 생성할 필요는 없지만 혹시 없다면 log4j.xml 파일을 생성해야 한다. Path : src/main/resources/log4j.xml 1.log4j.xml 구성 Appender, logger, root 로 구성되어있는 걸로 보인다. Appender는 로그를 찍을 대상이나 어떤 방식으로 찍을 지를 결정하는 설정으로 보인다. 기본 설정값은 console에 찍는 방식으로 되어있고 PatternLayout 클래스를 사용해서 Layout을 잡는다. logger는 Application Loggers라고 주석이 달린 것처럼 package와 같이 영역을 지정하고 해당 영역에서 사용할 lo.. 2021. 3. 24.
[log4j ] Log4j 란 Log4j 란? log4j는 프로그램을 작성하는 도중에 로그를 남기기 위해 사용되는 자바기반 로깅 유틸리티이다. 디버그용 도구로 주로 사용되고 있다. log4j의 최근 버전에 의하면 높은 등급에서 낮은 등급으로의 6개 로그 레벨을 가지고 있다. 설정 파일에 대상별(자바에서는 패키지)로 레벨을 지정이 가능하고 그 등급 이상의 로그만 저장하는 방식이다. 출처: 1. 목적 System.out.println() 을 사용하여 로그를 확인할 경우 사용하지 않게 되면 일일이 주석처리를 해야 한다. 로그의 레벨이나 로그문의 레벨에 따라서 로그를 유연하게 출력하여 불필요한 업무를 줄이고 성능을 최적화 할 수 있다. (그대로 둔다면 프로그램 성능에 영향을 미칠 수 있다.) 2. 종류 6개의 레벨로 구성됨 1.FATAL :.. 2021. 3. 24.
[Java] Collection Framework :: 자바의 자료구조 (List, Set, Map) Java Collection Framework(JCF) : Java에서 데이터를 저장하는 자료구조들을 한 곳에 모아 편리하게 관리하고 사용하기 위해 제공하는 것. 크게 List, Set, Map으로 구분할 수 있다. 이번 포스팅에서는 각각이 사용할 수 있는 메소드보다는 대략적인 큰 그림을 정리하기에 집중할 것이고 (메소드는 구글링만 해도 충분히 쉽게 찾아낼 수 있다. ), 몇개의 자료구조를 뽑아 설명해보겠다. List 인터페이스와 Set 인터페이스를 설명하기 이전에 알고 넘어가야할 점은, 컬렉션은 기본 데이터형이 아닌, 참조 데이터형만 저장이 가능하다는 것이다. 따라서 Collection에서의 데이터는 Object 타입의 객체로서 저장이 되는 것인데, 그렇다면 여기서 기본 데이터형은 어떻게 저장하고 관리.. 2021. 3. 24.
[Spring] 스프링(Spring) 정의 및 특징 정리 스프링 프레임워크(Spring Framework) - 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 스프링(Spring)이라고도 불린다. - 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공한다. ▶ 참고1) 어플리케이션??? 애플리케이션?? 앱?? 어플??, 등 용어가 헷갈리시는 분들이 많을 텐데 개발자라면 기본상식으로 알고있어도 좋을 것 같다. 애플리케이션(O) 어플리케이션(X) 앱(O) 어플(X) ▶ 참고2) - 로드 존슨(Rod Johnson)이 자신의 JAVA 개발 경험과 노하우를 기반으로 출판한 책(Expert One-one-One J2EE Design and Development)에 샘플 프레임워크를 만들어서 저서에 실었는데, 이것이 차후 스프링이란 자바 표준 프레임워크로 .. 2021. 3. 14.
[Java] 메모리 릭 / 메모리 누수(Memory Leak) 현상 프로그래밍에서 메모리 누수현상(Memory Leak)은 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상입니다. 자바의 메모리 누수 자바에서 메모리 누수는 더이상 사용하지 않는 객체가 가비지 컬렉션(GC)에 의해서 회수되지 않고 계속 누적되는 현상입니다. Old 영역에 누적된 객체로 인해서 메이저 GC가 빈번하게 발생하게 되고, 프로그램의 응답속도가 늦어지다 결국 OOM(OutOfMemory) 오류로 프로그램이 종료됩니다. 주로 빈번한 전역변수의 선언이나, 리스트나 해쉬맵 같은 콜렉션에 저장한 객체를 해제하지 않고 계속 유지하게 되면서 주로 발생합니다. 다음의 dzone 기사를 보면 Java 에서 메모리릭이 일어는 경우를 6가지 예를 들어서 코드와 함께 설명하고 있습니다. 자바의 메모리 누수 예.. 2021. 3. 13.
JAVA 면접 용어 정리 java Array vs ArrayList 둘 다 배열이라는 점은 동일하나, Array는 인덱스로 접근하는 반면, ArrayList는 메서드를 통해 접근합니다.(index로 접근하는 것은 동일) Array는 Object뿐만 아니라 원시 형태(int, double 등)도 담을 수 있지만, ArrayList는 Object형(Reference, 객체)만 담을 수 있습니다. 따라서 정수를 ArrayList에 넣을 경우 Integer형은 가능하지만 int형은 불가능합니다. 덧붙여서, Integer처럼 int오 같은 원시타입을 담을 수 있는 객체를 Wrapper Class라고 합니다. 결국 Array와 ArrayList의 가장 큰 차이는 길이를 조정할 수 있는가입니다. Array 같은 경우는 고정 길이이고, Arr.. 2021. 3. 12.
[Java] JAVA 특징 자바의 장점 이식성이 높은 언어이다 이식성이란 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다. 자바 언어로 개발된 프로그램은 소스 파일을 수정하지 않아도, 자바 실행 환경(JRE)이 설치되어 있는 모든 운영 체제에서 실행 가능하다. 객체 지향 언어이다 객체 지향 프로그래밍(Object Oriented Programming, OOP)이란 프로그램을 개발하는 기법으로, 부품에 해당하는 객체들을 먼저 만들고 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 말한다. 자바는 100% 객체 지향 언어이며, 객체를 만들기 위해 설계도인 클래스를 작성하고 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어 낸다. 또한 객체 지향 언어가 가져야 할 캡슐화, 상속.. 2021. 3. 12.
728x90
반응형