본문 바로가기

java54

JAVA - max() 두 개의 데이터를 비교하여 큰 값을 리턴하는 함수 max() 함수로 두 개의 숫자중에 최대의 값을 구해보자 안녕하세요.고코더 입니다. ● 1. 오늘은 두 개의 값을 비교하여 큰 값을 리턴하는 max() 함수를 알아보겠습니다. max()는 수학에서 사용하는 함수들을 모아놓은 java.lang.Math 클래스입니다. ● 2. int, long, double, float 형태의 숫자를 비교 가능합니다. 간단하게 예제를 한번 만들어 보겠습니다. 두 개의 숫자를 쉼표로 구분하여 max 함수에 넣습니다. 아주 짧고 간단한 예제 입니다. ● 3. 길지 않는 소스이니 직접 코딩을 해보시는걸 추천합니다. 12345678public class HelloWorld{ public static void main(String []args){ System.out.println(M.. 2020. 6. 30.
Spring - AOP 용어/ advice 어노테이션 용어 / (2) AOP 관련 단어 정리 안녕하세요. 고코더 입니다. 이전 시간에는 AOP라는 의미에 대해 알아보았습니다. 이번 시간에는 사용하는 용어에 대해 알아보겠습니다. AOP 관련 용어 1. Aspect 기본적으로 AOP는 흩어진 Aspect들을 모아서 모듈화 하는 기법을 말합니다. 사전적으로 말하며 흩어진 관심사를 모듈화 한 것입니다. 부가기능을 모듈화 합니다. 2. Target 타겟은 Aspect할 대상을 말합니다. 핵심 기능을 담고 있는 모듈들은 부가기능을 부여할 대상이 됩니다. 3. Advice 실질적인 부가기능을 구현한 구현체를 말합니다. 어떤 동작을 해야할지 대한 것들입니다. 4. Joint Point Advice가 적용될 위치에서 끼어들 수 있는 지점을 말합니다. 다양한 시점에 적용가능 합니다. (ex.. 2020. 3. 19.
Spring - POJO란? / 탄생배경 / 특징 / 기반 Plain old Java object 란? 안녕하세요. 고코더 입니다. 오늘인 POJO라는 개념을 알아봅니다. 개인적으로 몰라도 될거 같은 개념이지만 면접자들은 이걸 질문하기 좋아하므로 알아봅니다. 이 개념은 철학에 가깝습니다. 물런 구체화 하면 특정 방식의 소스가 POJO가 됩니다. ● 1. POJO란 한줄로 표현하면? "프레임워크에 종속된 무거운 객체를 만들게 된 것에 반발해서 사용되게 된 용어" ● 2. 탄생 배경 마틴 파울러는 자바의 단순한 오브젝트를 이용하여 로직을 구현하는게 나은데 왜 EJB처럼 복잡하고 제한 많은 기술을 이용할까? 라는 의문이 들었습니다. 마틴은 그저 그럴싸한 이름이 없는게 원인 일까 싶어 POJO를 만들었습니다. 평범한 자바오브젝트에 멋진 이름을 붙여줬던 시도는 기대 이상.. 2020. 3. 19.
Spring - 의존성 주입(DI) 이란? / 제어의 역전(IoC) 이란? Dependency Injection , Inversion of Control 를 알아보자 안녕하세요. 고코더 입니다. 오늘은 의존성 주입(Dependency Injection)을 다뤄봅니다. 스프링의 핵심 개념중에 하나 입니다. 스프링에서 가장 중요한 핵심입니다. 이 부분때메 자바 서블릿을 하다. 스프링을 만나면 헤매게 되는 이유입니다. 100프로 이해하려면 현업에서 장점을 마주칠때 이해가 조금씩 되나 머리속에 잘들어오지 않는 개념입니다. 그러므로 그냥 얘는 원래 이러구나라고 생각하면 될거 같습니다. ● 1. DI를 한줄로 요약하면 "객체간의 의존성을 외부에서 주입하는 개념" ● 2. 비유 최근에 생긴 오락실을 가니깐 동전 넣는 부분이 없습니다. 그래서 물어보니 목에 매는 카드를 하나 줍니다. 이걸 가.. 2020. 3. 19.
Spring - AOP 란? / 관점 지향 프로그래밍 / (1) 관점으로 본 AOP 안녕하세요. 고코더 입니다. OOP는 훌륭한 객체 프로그래밍입니다. 하지만 공통적으로 트랜잭션처럼 반복되는 중복코드가 생기는 단점이 있습니다. 중복코드를 좀 더 줄이고자 하여 탄생한게 AOP 입니다. Aspect Oriented Programming 의 약자입니다. 직역하자면 "관점 지향 프로그래밍" 이라고 할 수 있습니다. 오늘은 AOP가 어떤 관점이 있는지 알아봅니다. ● 1. AOP를 한줄로 정리하면? "애플리케이션 전체에 걸쳐 사용되는 기능을 재사용 하도록 지원하는 개념" ● 2. 비유 병원에 환자가 입원합니다. 맹장 수술이 필요하다고 합니다. 전날에 약을 먹고 금식을 지도하는걸 간호사가 합니다. 그리고 당일날 수술실에 환자를 눕히고 조명을 밝히고 수술 부위 소독과 매스까지 준.. 2020. 3. 19.
JAVA - 싱글톤(Singleton) 패턴이란? / 예제소스 싱글톤을 알아보자 안녕하세요. 고코더 입니다. 싱글톤(Singleton) 패턴을 알아보려고 합니다. 싱글톤은 최초에 한번만 실행합니다. 애플리케이션이 시작될때 최초 한번만 메모리를 할당하는 방법입니다. 동일 인스턴스를 사용하게 하는 특징이 있습니다. 다시 말해서 인스턴스가 프로그램 안에서 하나만을 생성되게 하고 이 인스턴스를 접근하게 만든 패턴입니다. ● 1. 싱글톤 비유 결혼 안한 사람을 우린 싱글이라고 합니다. 싱글남은 소개팅을 하러 나갑니다. 매번 나간 소개팅에서 옷이랑 머리 스타일은 변하지만 사람은 그대로 입니다. 소개팅을 주선하는 주선자는 매번 똑같은 사람인 이 싱글남을 소개합니다. 싱글남은 언제나 준비되어 있고요. 항상 소개팅을 나갈 준비가 되어 있습니다. 싱글톤도 이와 같습니다. 최초에 소개.. 2020. 3. 17.
JAVA - null 과 ""(빈값)의 차이는 무엇일까? / 메모리상의 차이 자바에서 공백 값과 널(Null) 값의 차이는? 안녕하세요. 고코더 입니다. 자바에서 null 값과 ""(빈 공백)은 어떻게 다른지 알아보려고 합니다. 얼핏보면 비슷해보이지만 완전히 다른 개념을 가지고 있습니다. ● 1. null 널(null)은 어떠한 값으로도 초기화 되지 않은 것입니다. 이렇게 초기화된 데이터는 내가 사용할 예정이다 정도로 컴파일러는 생각합니다. 그래서 참조형이지만 힙메모리상에 데이터를 만들어 내지 않습니다. 1String a = null; cs ● 2. ""(공백) 공백 값은 사실 하나의 스트링입니다. 예를 들면 "gocoder"로 변수를 선언한거처럼 빈 값을 메모리에 할당한 행동입니다. 1String b = "";cs ● 3. 차이점 다시 정리 null은 사용하겠다고 예고만 해놓은.. 2020. 3. 17.
JAVA - 옵저버 패턴(Observer Pattern) 이론만 쉽게 설명 자바 옵저버 패턴을 분석 해보자 안녕하세요. 고코더 입니다. 오늘은 옵저버 패턴에 대해 알아봅니다. 좋은 글들이 많지만 조금은 어려운게 많아 최대한 쉽게 설명해보겠습니다. ● 1. 옵저버 패턴이란? 옵저버 패턴(Observer Pattern)을 이해 할때 좋은 이미지가 있습니다. 바로 스타크래프트에 옵저버 입니다. 프로게이머는 이 유닛들에게 명령을 내립니다. 예를 들면 "모두 본부로 귀환하라" 그럼 통지 받은 옵저버들은 본부로 이동합니다. 그러다 중간에 옵저버가 파괴 되기도 하고 대열에 이탈하기도 합니다. 그렇지만 다른 옵저버들은 각자 할일을 합니다. 느슨한 관계입니다. 마우스가 주체이고 옵저버들이 객체 입니다. 마우스가 많은 옵저버에게 명령을 내리는 1:N (1대다) 관계입니다. 이 와 같은 모습이 옵.. 2020. 3. 17.
JAVA - "equals"와 "==" 차이점을 알아봅시다. 이퀄과 == 두 개의 비교 기능 뭐가 다를까? 안녕하세요. 고코더 입니다. 자바에서는 대표적인 두 가지 데이터 비교 방법이 존재합니다. 바로 "equals"와 "==" 입니다. ● 1. 공통점 우선 공통점 부터 다뤄보려고 합니다. 이 둘은 데이터를 비교하는 기능을 합니다. 비교한 데이터를 논리형으로 리턴합니다. 즉 true 아니면 false 겠죠. 이런 기능을 통해 두 개의 데이터를 비교하여서 로직을 완성합니다. ● 2. 형태의 차이점 이 둘은 근본적으로 형태가 다른 점이 존재합니다. equals() 는 메소드입니다. 열기 닫기를 같이 쓰는걸 보면 메소드 이란걸 알 수 있습니다. == 는 비교 연산자입니다. 비교를 위한 연산자 입니다. ● 3. 비교 방식 이제 진짜 다른 점을 다루겠습니다. equals .. 2020. 3. 16.