위클리 페이퍼 Week 04. Spring Framework는 왜 만들어졌을까
·
코드잇 스프린트
코드잇 스프린트 위클리 페이퍼 네번째 주제 04-1Spring Framework가 탄생하게 된 배경과 이를 통해 해결하고자 했던 문제점에 대해 설명하세요. Spring Framework가 탄생하게 된 배경그리고 Spring이 해결하려 했던 문제들.Spring Framework는 현재 Java 기반 백엔드 개발에서 가장 널리 사용되는 프레임워크다!그래서 Java 백엔드 개발을 얘기할 때 Spring을 빼고 얘기하기는 참 어렵다. 하지만 Spring은 Java가 탄생했을 때부터 존재하지 않았다. 초기의 Java Enterprise 개발 환경이 너무나도 복잡하고 무거웠기 때문에,이 문제를 해결하려고 하다보니 자연스럽게 등장하게 된 결과물이다.Spring은 갑자기 하늘에서 똑! 하고 떨어진 만능 프레임워크가 아..
JAVA에서 메소드 간의 지역 변수를 참조할 수 없는 이유
·
객체지향
이치에 맞기 때문 메소드는 서로의 고유 공간인데, 서로 침범할 수 있게되면 메소드간의 문제가 생길 수 있기 때문이다. 포인터 문제 A() 메소드와 B() 메소드가 존재한다고 가정했을 때, A() 메소드에서 B() 메소드 내에 있는 b라는 지역변수에 접근하려고 한다면 b의 위치를 정확하게 알아야한다. 그 위치를 알려면 b 변수의 메모리 위치인 포인터(메모리 주소값)의 값을 알아야한다. 그런데 C/C++에 존재하는 포인터는 JAVA로 넘어오면서 없어졌기 때문에, b 변수의 위치를 정확하게 알 수 없다. 포인터 문제의 연장선 위에서 예로 들었던 A() 메소드, B() 메소드는 혼자서 호출하는 예였지만, 실제로 사용되는 메소드는 다양한 곳으로부터 호출된다. 이 때 호출하는 메소드 내부의 지역 변수를 호출당하는 ..
01-4 Java 예약어의 종류
·
Java
Java에서 예약어란 이미 프로그래밍 언어에서 의미를 갖고 사용되고 있는 단어로, 변수 이름으로 사용할 수 없는 것을 말한다. 예약어의 종류는 다음과 같다. 분류 예약어 기본 타입 boolean / byte / char / short / int / long / float / double 접근 제한자 private / protected / public 클래스 관련 class / abstract / interface / extends / implements / enum 객체 관련 new / instanceof / this / super / null 메소드 관련 void / return 제어문 관련 if / else / switch / case / default / for / do / while / break..
01-3 JVM(Java Virtual Machine)과 바이트 코드 파일(.class)
·
Java
JVM(Java Virtual Machine) 이란 직역하면 자바 가상 기계라는 뜻으로, 바이트 코드 파일(.class) 운영체제를 위한 완전한 기계어로 번역하고 실행하는 역할을 한다. 일종의 번역기(?)인 셈이다. 우리가 작성한 코드를 바이트 코드 파일로 만들어, JVM을 통해 번역을 해주면 컴퓨터가 기계어로 번역받아 실행할 수 있게 해주는 것이다. 자바가 JVM을 사용하는 이유는 바이트 코드 파일(.class)를 수정하지 않고 다양한 운영체제에서 사용할 수 있기 때문이다. 바이트 코드 파일(Byte Code File)은 우리가 작성한 자바 소스 파일을 javac 명령어로 컴파일한 파일을 말한다. 자바 프로그램을 개발하기 위해서는 파일 확장명이 ".java"인 텍스트 파일을 생성하고 자바 언어로 코드를..
01-2 Java 환경변수 설정하기
·
Java
포스트의 모든 내용은 '혼자 공부하는 자바(신용권)'을 기반으로 작성했다. JDK가 설치된 폴더 (C:\Program Files\Java\jdk-11)를 일반적으로 JAVA_HOME 이라고 말한다. 어떤 프로그램들은 설치된 JDK의 위치를 찾을 때 JAVA_HOME 환경변수를 이용하기 때문에 환경변수를 생성해주고 JDK 설치 폴더를 등록해주는 것이 좋다. 여기서 어떤 프로그램이란 다음과 같다. - Eclipse, NetBeans 및 Android 스튜디오 - Apache Tomcat 및 WebSphere Portal - JProfiler 및 Java Mission Control - 메이븐과 ANT - Gradle과 Groovy - Jenkins 및 Hudson CI 도구 - exe4j 사실 처음 공부하는..