profile
게을러 지지 말자

[Java] Map - getOrDefault

찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메서드.getOrDefault(key, defaultValue) 두개의 매개변수를 필요로 한다.key에는 값을 가져와야하는 요소의 키이다. 예를 들어 배열의 요소를 hash에 넣는다면 배열의 요소

약 3시간 전
·
0개의 댓글

[Java] Java 리팩토링 - 매직넘버

매직넘버란 정체를 알 수 없지만 특정 기능을 하는 마법의 숫자를 얘기한다.예를 들어 문자열의 길이가 100까지라고 했을때 100이라는 숫자를 매직넘버라고 한다.위의 설명을 추가하자면 for문에 i < 100 으로 작성했다면 100이 매직넘버란 소리다.의미가 모호하

2021년 10월 19일
·
0개의 댓글

[Java] Java toString()과 String.valueOf()에 대해서

Java에서 데이터를 가공 혹은 처리 하다보면 null에 대한 처리가 필요할 때가 있다.보통 문자열로 형 변환 시 toString()을 자주 사용하는데 null값을 문자열로 형 변환시 NullPointerException이 발생한다.String.valueOf()를 사용

2021년 10월 19일
·
0개의 댓글

[Java] Design Pattern - Composite

특정 클래스의 객체들을 트리 관계로 다루고 포함하는 객체와 포함되는 객체를 같은 인터페이스로 다룰 수 있도록 하는 패턴이다.

2021년 10월 13일
·
0개의 댓글

[Java] Design Pattern - Mediator

한 클래스에서의 이벤트가 연결된 다른 클래스의 객체에 영향을 미칠때 미디어에이터 패턴으로 효율적인 설계를 할 수 있다.어떤 클래스의 객체에서 특정 이벤트 가 발생할 때마다 연결된 다른 클래스들에 알려야하는 경우가 있다.예제 코드로 좀 더 디테일 하게 알아보자

2021년 10월 13일
·
0개의 댓글

[Java] Design Pattern - Abstract factory method

팩토리 메서드 패턴과 추상 팩토리 메서드 패턴의 차이factory method조건에 따른 객체 생성을 팩토리 클래스로 위임하여 팩토리 클래스에서 객체를 생성하는 패턴abstract factory method서로 관련이 있는 객체들을 통째로 묶어서 팩토리 클래스로 만들고

2021년 10월 13일
·
0개의 댓글

[Java] Design Pattern - factory method

팩토리 메서드 패턴은 객체를 생성하는 인터페이스를 미리 정의하되 인스턴스를 만들 클래스의 결정은 서브 클래스 쪽에서 내리는 패턴이다.여러개의 서브 클래스를 가진 슈퍼 클래스가 있을때 인풋에 따라 하나의 자식 클래스의 인스턴스를 리턴해주는 방식이다.쉽게 말해 객체 생성을

2021년 10월 13일
·
0개의 댓글

[Java] Design Pattern - Decorator

동적으로 책임추가가 필요할때 데코레이터 패턴을 사용할 수 있다.단어 이해 -> 동적이라는 단어는 실시간으로 변화됨을 의미하고책임추가는 해야 하는 일, 할 수 있는 일을 뜻한다.객체의 결합을 통해 기능을 동적으로 유연하게 확장 할 수 있게 해주는 패턴기본 기능에 추가할

2021년 10월 11일
·
0개의 댓글

[Java] Design Pattern - Template Method

공통적인 프로세스 묶기일정한 프로세스를 가진 요구사항을 Template Method Pattern을 이용하여 구현할 수 있다.일정한 프로세스의 예) 접속 단계를 예로 들 수 있다.추상적인 설명알고리즘의 구조를 메서드에 정의하고 하위 클래스에서 알고리즘 구조의 변경 없이

2021년 10월 11일
·
0개의 댓글

[Java] Design Pattern - Facade

하위 시스템을 보다 쉽게 사용할 수 있게 해주는 고급 인터페이스를 정의하는 패턴원래 코드를 쉽게 처리 할 수 있는 래퍼를 제공한다.스크린샷 2021-10-11 오전 6 29 06어떤 코드에 사용해야하나?캡슐화되지 않은 코드를 처리 할때 Facade 패턴을 사용한다.원하

2021년 10월 10일
·
0개의 댓글

[Java] 객체지향 설계 원칙 SOLID

객체 지향 4대 특성엔 다형성, 캡슐화, 상속, 추상화가 있다.이러한 객체지향의 묘미를 잘살릴 수 있도록 좋은 설계를 하기 위한 내용이 설계 원칙 SOLID이다.소프트웨어는 응집도가 높고 결합도가 낮기 때문에 모듈 또는 클래스 당 하나의 책임을 주어 더욱더 독립된 모듈

2021년 10월 10일
·
0개의 댓글

[Java] Design Pattern - Proxy

말 그대로 대변인이라는 뜻을 가지고 있다. 다른 누군가를 대신해서 그 역할을 수행하는 존재이다.프로그램에선 Proxy에게 어떤 일을 대신 시키는 것이다.단, 흐름제어만 할 뿐 결과 값을 조작하거나 변경시키면 안된다.실제 기능을 수행하는 객체 대신 가상의 객체를 사용해

2021년 10월 9일
·
0개의 댓글

[Java] Design Pattern - Adapter

우리가 알고 있는 어뎁터는 전기 코드가 일반적이다. 하지만 이 전기 코드는 각 나라마다 전압이 달라서 다양한 어뎁터를 사용해야한다.이처럼 어답터는 형식이 다른 둘 사이에 연결되어 이 둘이 호환될 수 있도록 해주는 도구 이다.객체지향에서의 어답터는 보통 인터페이스가 서로

2021년 10월 9일
·
0개의 댓글

[Java] Design Pattern - Command

실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할 때 유용실행될 기능을 캡슐화함으로써 기

2021년 10월 9일
·
0개의 댓글

[Java] enum

enum은 열거형이라고 한다.열거형은 서로 연관된 상수들의 집합이라고 할 수 있다.예를 들어서 day로 월요일부터 ~ 일요일까지 month로 1월에서 12월 등 이렇게 연관성 있는 내용들을 상수로 묶어주는 것을 말한다. 코드로 보면 아래와 같이 나타낼 수 있다.열거형의

2021년 10월 9일
·
0개의 댓글

[Java] Design Pattern - State

객체가 상태에 따라 행위를 달리하도록 하는 패턴동일한 동작을 객체의 상태에 따라 다르게 처리해야할 때 사용한다.코드 구성방식일단 전략 패턴과 마찬가지로 상태에 대한 내용을 인터페이스로 캡슐화한다.그리고 각 상태에 대한 클래스를 생성하고 클래스에 반대되는 상황을 인터페이

2021년 10월 9일
·
0개의 댓글

[Java] Design Pattern - Strategy

객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고 유사한 행위들을 캡슐화 하는 인터페이스를 정의하여,객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확장하는 방법을 말한다.즉, 프로그램 실행중

2021년 10월 8일
·
0개의 댓글

[Java] Design Pattern - Singleton

객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다.싱글톤 패턴을 구현하려면 구현하려는 클래스의 생성자를 외부에서 호출 못하게 private으로 지정해야한다.일단 구현 예제 코드를 먼저 확인해보자싱글톤 클래스인 Settings Class는 생성자에 private 키

2021년 10월 7일
·
0개의 댓글

[Java] Call by Value와 Call by Reference

Call by value > 값에 의한 호출 > > 기본 자료형에만 동작 (int, short, long, float, double, char, boolean) 메서드 호출시에 사용되는 인자의 메모리에 저장되어 있는 값을 복사하여 보낸다. 예시 코드 스왑 메서드

2021년 10월 6일
·
0개의 댓글

[Java] 메모리 할당 (Stack메모리와 Heap메모리 구조)

Java에서 변수를 할당하고자 할때 그냥 바로 할당 하는 부분이 있고 new라는 키워드를 붙여서 할당할 때도 있다.이 둘의 차이점은 Primitive Type인지 Reference Type인지의 차이이다.간단하게 이해하자면 Primitive Type말고는 전부 new로

2021년 10월 6일
·
0개의 댓글