Spring이 내부 매커니즘으로 사용하는 캐시도 조심해서 써야 한다. Spring MVC에서 작성되는 메서드의 리턴 타입에 문자열을 반환할 수도 있고, ViewResolver를 사용하여 뷰 객체를 반환할 수도 있다. @Controllerpublic Class SampleController {@RequestMapping("/member/")public String hello(@PathVariable int id) {...생략return "redirect:/returnUrl;}} @Controllerpublic Class SampleController {@RequestMapping("/member/")public ModelAndView hello(@PathVariable int id) {...생략return..
Java 기본적인 환경 세팅에 대해 알아보자. 윈도우 환경 어디에서든지 Java 명령어를 가능하게 하는 세팅이다. 어떤 개발 툴에서는 Java 환경 세팅이 안 되어 있으면 프로그램이 실행이 안 되는 경우도 있고 JAVA_HOME 이라는 시스템 변수는 개발 세팅에 있어서 광범위하게 사용된다. 특히 리눅스 환경 서버 세팅에서 JAVA_HOME을 등록하지 않고 다른 설정을 잡기란 쉬운 일이 아니다. 추후 리눅스에서 JAVA_HOME 등록 방법을 설명하도록 하겠다. Windows10 다른 윈도우 버전과는 UI만 다를 뿐 세팅 방법에는 차이가 없다. 1. Java 명령어 확인 위와 같은 명령어로 확인했을 때 컴퓨터가 인식을 못 하면 환경 변수 설정이 되어 있지 않은 것이다. 2. 환경변수 추가 시스템 -> 고급 ..
스프링 프레임워크(Spring Framework) 우리나라에서는 자바 기반의 프로젝트를 진행할 때 대부분 스프링 프레임워크를 사용한다. 스프링 프레임 워크를 웹 프로젝트로 오해하는 분들도 많다. 하지만 스프링 프레임워크는 웹 애플리케이션, 간단한 애플리케이션, 여러 서버와 연동하여 동작하는 엔터프라이즈 애플리케이션도 범용적인 스프링 프레임워크다. Spring의 가장 큰 특징은 복잡한 애플리케이션도 POJO(Plan Old Java Object)로 개발할 수 있다는 점이다. 이 밖에도 JMS, JMX, Mail, Web Service 등 여러 가지 기능을 POJO 기반으로 사용할 수 있다. 스프링의 핵심 기술(Spring Core technology) 스프링의 핵심 기술은 바로 DI(Dependency I..
코딩을 할 때 객체 생성을 막고 싶을 때가 있다.유틸리티 클래스(Utiliy class)들은 객체를 만들 목적의 클래스가 아니다. 객체를 만들면 오히려 이상하다. 하지만 생성자를 생략하면 컴파일러는 자동으로 디폴트 생성자(default constructor)를 만들어 버린다. 귀가 닳도록 듣고 입이 아프도록 많이 했던 말이다.. 이렇기 때문에 생성자를 만들지 않으려고 생성자를 선언하지 않았어도 사용자는 해당 클래스의 객체를 만들 수 있게 된다. 이런 경우 디폴트 생성자를 private로 정의해 놓고 객체를 생성하지 못하도록 막아야한다. /* 객체를 만들 수 없는 유틸리티 클래스 */public class UtilityClass {/* 기본 생성자가 자동으로 생성도지 못하도록 하여 객체 생성 방지 */pr..
Singleton싱글턴은 객체를 하나만 만들 수 있는 클래스다.싱글턴을 구현하는 흔히 사용하는 방법 두가지는 다음과 같다. 생성자를 private로 선언하고 public static final로 선언한 필드 변수에 인스턴스 저장생성자를 private로 선언하고 public statc ClassType getInstance() { return INSTANCE;} public class Elvis { private static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } public static Elvis getInstance() { return INSTANCE; } public void leaveTheBuilding() { ... } }위 코드..
객체지향 개발과 관련된 용어들클래스 "상태"와 "행위"를 갖는 자바의 기본 단위를 의미한다. 모듈화가 가능한 가장 작은 단위를 클래스라고 보면 된다.상태와 행위어떤 사물을 나타낼 때에는 상태와 행위로 구분하여 표시하는 것이 가능하다. 자바에서 "상태"는 클래스나 인스턴스 변수로, "행위"는 메소드로 표현할 수 있다.캡슐화연관된 "상탱"와 "행위"를 결정하는 기능을 묶어 주는 것을 의미한다. 이렇게 묶어주면 기능을 클래스 밖에서 접근 가능한 대상을 제한하는 정보 은닉이 가능하다. 그리고, 하나의 객체를 위한 코드가, 다른 객체를 위한 코드와 무관하게 수행할 수 있는 모듈화가 가능해진다.객체클래스는 사물의 단위를 의미하지만, 객체는 각 사물을 의미한다.상속부모에 선언된 변수와 메서드에 대한 사용권을 갖는 것..
JMH 툴을 통해 Collection 관련 객체에 대해 성능 테스트를 진행 해보자.JMH 툴 설치가 아직 안되신 분들은 JMH 설치 설치 및 설정 방법 글을 참고 하기 바란다.[엔지니어링/성능과 튜닝] - [성능과 튜닝] JMH 설치 및 설정 방법 Set 클래스 중 무엇이 가장 빠를까?Set 관련 클래스들의 성능을 비교해 보기 위해 아래와 같이 JMH 테스트 코드를 만들었다.데이터를 담을 때 얼마나 시간 차이가 발생하는지 확인해 보자. @State(Scope.Thread) @BenchmarkMode({Mode.AverageTime}) @OutputTimeUnit(TimeUnit.MILLISECONDS) public class SetAdd { int LOOP_CONUT = 1000; Set set; Str..
점층적 생성자 패턴(Telescoping Constructor Pattern)생성자 인자에 대해 생각해 본 적이 있는가? 때로는 생성자 인자가 너무 많을 때도 있다. 예를 들어 항목이 20개 쯤 되는 필드를 상상해 보자. 보통의 프로그래머들은 이런 상황에 점층적 생성자 패턴(telescoping constructor pattern)을 적용한다. 필수 인자만 받는 생성자를 하나 정의하고, 선택적 인자를 하나 받는, 둘 받는 인자를 계속해서 추가하는 식으로 생성자를 쌓아 올리듯 추가하는 것이다. 이런 조합 가능성을 다 고려한다면 생성자는 끊임없이 많아지게 된다. 또한, 설정할 필요가 없는 필드에도 인자를 전달해야 하는 경우가 생긴다. NutritionFacts cocaCola = new NutritionFa..
알고리즘 문제는 아닐지라도 실타래를 한 올씩 풀어서 답을 찾는 문제를 풀어보자.이 문제를 만든 사람은 "상대성 이론"으로 유명한 앨버트 아인슈타인(Albert Einstein)이라고 알려져 있는데, 확인된 바는 없다. 사물을 기억할 수 있는 두뇌의 메모리 용량이 특별하게 큰 사람이 아니라면 아마 종이와 연필을 이용해서 논리의 흐름을 하나씩 따라가는 것이 필요할 것이다. 전제서로 색이 다른 5채의 집이 있다.각 집에는 출신 나라가 서로 다른 사람이 살고 있다.각 집주인은 5가지 다른 종류의 음료수를 마시고, 상표가 다른 담배를 피우며, 애완동물을 한 마리씩 키운다.음료, 담배, 동물은 일치하지 않는다. 주어진 정보를 토대로 "금붕어"를 기르는 사람은 누구일까? 조건1. 영국 사람은 빨간 집에서 산다.2. ..
프랙탈(fractal) 구조란 전체의 모습이 작은 부분에서 똑같이 반복되고 있는 경우를 뜻한다."재귀"란 동일한 함수에 대한 호출이 반복되는 것이로, 이진 트리의 모습을 가만히 생각해 보면 그것이 동일한 구조가 반복되는 프랙탈(fractal) 구조을 하고 있음을 알 수 있을 것이다.그런데 이진 트리에서 일부분을 따로 보면 그것이 여전히 이진 트리의 모습을 하고 있기 때문에 이진 트리는 프랙탈(fractal) 구조에 해당한다.말하자면 재귀란 프랙탈(fractal) 구조의 알고리즘적 반영이다.
- Maven
- SQL
- Java
- 제주도 3박4일 일정
- 개발환경
- 프로그래머스
- 이직
- Tomcat
- Collection
- 오라클
- 소프트웨어공학
- 리액트
- sort algorithm
- Linux 명령어
- 회고
- 자바스크립트
- 자바
- React
- javascript
- spring
- 오라클 내장 함수
- 리액트 16
- Eclipse
- 제주도 여행
- effective java
- 경력관리
- 리눅스 명령어
- 정렬 알고리즘
- 성능분석
- 프로그래머
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |