목록JAVA (8)
개발일지
코드로 배우는 스프링 웹 프로젝트 [목표] - 스프링 프레임 워크를 이용해서 의존성 주입에 대한 이해 - 스프링에서 XML 을 이용하는 객체 관리 방법 - 스프링 환경 구축 스프링의 주요 특징 - Plain Old Java Project; POJO 기반의 구성 스프링은 다름 프레임워크와 달리 관계를 구성할 때 별도의 API 를 사용하지 않는다. 쉽게 말해 일반적인 JAVA 코드를 이용해 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다는 것이다. 이게 중요한 이유는 코드를 개발할 때 개발자가 특정한 라이브러리, 컨테이너의 기술에 종속적이지 않다는 것을 의미한다. 이렇게 되면 개발자는 가장 일반적인 형태로 코드를 작성하고 실행할 수 있어 생산적으로 일할 수 있다. - 의존성 주입을 통한 객체간의 관..
대학교 2학년 때부터 거의 5-6년 자바를 사용해왔지만, 다시 자바 기본을 다지기 위해 [이것이 자바다] 라는 책을 펴본다. 가끔씩 이렇게 기본 개념을 다시 잡아보고 정리하면 내것이 되고 공유하면 좋을 것같아 글을 써본다! 이걸 아직까지 제대로 몰랐어? 할 수 있지만 이제라도 알아서 얼마나 다행인가! static 은 "고정" 이라는 의미를 가지고 있다. 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다. 이것들을 각각 정적 필드와 정적 메소드라고 부른다. 정적 멤버와 정적 메소드를 선언하는 방법은 필드와 메소드 선언 시 static 키워드를 추가적으로 붙이면 된다. public class 클래스 이름 { //정적 필드 static 타입 필드 [ = 초기값 ..
자바로 개발되어 있는 프로그램을 유지보수한다고 생각해보자. 개발한 시스템에 코틀린을 사용해보고싶다. 가능할까? 정답은 가능하다. 99.9%도 아닌 100% 호환되기 때문에 가능하다. 그럼 왜 100% 호환이 되는걸까? 코틀린 탄생 배경 코틀린은 JetBrains 라는 곳에서 만들어 졌다. IntelliJ (인텔리제이) 라는 IDE 를 개발하는 회사이다. 이 회사의 코드는 70%가 자바였다고 한다. 근데 IDE를 자바보다 더 좋고 멋진 프로그래밍 언어로 개선하고 싶었다고 한다. 근데 자바를 너무 많이 사용해서 전부 무시하고 새로운 언어를 가져다 쓸 수는 없었다고 한다. 그래서 자바와 호환되는 언어가 필요했는데 그게 코틀린!! 그래서 왜 100% 호환 가능하냐? 100% 호환이란 자바 코드에서 코틀린 코드를..
자바의 데이터 타입에는 크게 원시타입(primitive type), 참조타입(reference type)이 있다. 오늘 이야기 해볼건 참조타입!! 원시타입 간단하게 얘기하고 넘어가자면, 원시타입은 byte, char, short, int, long, float, double, boolean.. 을 이용해서 선언해 실제값을 변수 안에 저장한다. int a = 5; double b = 100.5; 참조 타입은 배열, 열거, 클래스, 인터페이스를 이용해 선언된 변수고 메모리의 번지를 값으로 갖는다. 번지틑 통해 참조한다는 뜻에서 참조타입이라고 부른다. String c = "kang"; String d = "kangkang"; 자바의 변수는 스택영역에 생성되고 객체는 힙 영역에 생성된다. 위에 선언된 변수 a,..

JVM 에 대해 한번 정리해보고 넘어가려고 쓰는 글이다. 운영체제는 자바 프로그램을 바로 실행할 수 없다. 왜냐 자바 프로그램은 완전한 기계어가 아닌 중간 단계인 바이트코드이기 때문에 이것을 해석하고 실행할 수 있는 가상의 운영체제가 필요하다. 이것이 JVM; Java Virtual Machine 이다!! JVM 은 실 운영체제 대신해서 자바 프로그램을 실행하는 가상의 운영체제 역할을 한다. 운영체제별로 프로그램을 실행하고 관리하는 방법이 다르기 때문에 운영체제별로 자바 프로그램을 별도로 개발하는 것보다 운영체제와 자바프로그램을 중계하는 JVM 을 두어 자바프로그램이 여러 운영체제에서 동일한 실행 결과가 나오도록 설계한 것이다!! 그래서 우리 개발자들은 운영체제와 상관없어 자바 프로그램을 개발할 수 있는..
- String 객체와 String 객체를 더하는 (+) 행위는 메모리 할당과 메모리 해제를 발생시키며 더하는 연산이 많아진다면 성능적으로 좋지 않다. (str1 + str2 하면 새로운 String 을 생성) 그래서 나온게 StringBuilder 이다. - StringBuilder 는 String 문자열과 더할 때 새로운 객체를 생성하는 것이 아니라 기존 데이터에 더하는 방식을 사용하기 때문에 속도도 빠르며 상대적으로 부하가 적다. StringBuilder encParamStr = new StringBuilder(); encParamStr.append(encStr); System.out.println(encParam.toString())
자바를 사용하면서 과연 잘 사용하고 있는 건가..? 자바에 대해 잘 알고있나..? 생각해보았다. 나의 주 언어가 뭐냐고 물어본다면 자바라고 할 것같은데 뭔가 가슴 한쪽이 찔리는 느낌. 그래서 기본!!!기초!!!! 자바의 특징부터 다시 공부해보자. 이미 알고있는 것일 수도 있으나 한번의 정리는 필요해 보인다. 1. 자바는 이식성이 높은 언어다. 이식성이란 -> 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다. 예를 들어 MS윈도우에서 실행하는 프로그램을 리눅스에서 실행할 수 있다면 이식성이 높은 것이고 실행할 수 없다면 이식성이 낮은 것이다. MS 윈도우 환경에서 실행되는 대부분의 프로그램들은 MS 윈도우 환경에 최적화되어있기 때문에 유닉스나 리눅스에서 실행하려면 프로..
1. primitive 자료형 - int, float, long, double - 산술연산 가능 - null 로 초기화 할 수 없음 2. Wrapper 클래스 - *Unboxing 하지 않으면 산술연산 불가능, null 값을 처리할 수 있음 - null 값 처리 용이하니 SQL 과 연동할 경우 처리 원활하게 하게 할 수 있음 * Boxing : primitive 자료형 -> Wrapper 클래스 // Integer a = new Integer(b); * Unboxing : Wrapper 클래스 -> primitive 자료형 // int b = a.intvalue(); Integer.valueOf(String) vs. Integer.parseInt(String) Integer.valueOf(String) ..