성실한 사람이 되자

성실하게 글쓰자

This is spear

객체 지향의 사실과 오해 - 역할, 책임, 협력

객체 지향의 사실과 오해를 읽고 정리한 글 섹션 - 04. 역할, 책임, 협력 객체의 모양을 빚는 것은 객체가 참여하는 협력이다. 어떤 협력에 참여하는지가 객체에 필요한 행동을 결정하고, 필요한 행동이 객체의 상태를 결정한다. 개별적인 객체의 행동이나 상태가 아닌 객체들 간의 협력에 집중해야 한다. 내용 객체지향의 설계의 품질을 결정하는 개념 - 역할, 책임, 협력 협력 협력은 요청과 응답이다. 요청과 응답을 통해 협..

spring - JDBC을 사용한 데이터 저장과 출력, 그리고 auto increment 키 값 가져오기

요즘 객체 지향 설계를 위해 JPA를 공부하고 있어서 서버에서 데이터베이스에 입출력할 수 있는 라이브러리에 관심이 많아졌다. 스프링에서는 MyBatis, JDBC, JPA가 대표적으로 존재했고, 한국에서 두 번째로 많이 사용하는 JDBC에 관심이 생겼다. 구글 트렌드에서 국내에서의 관심도를 보면 JDBC의 관심도가 생각보다 많았다. 그 외 전 세계적으로도 JDBC의 관심도가 많아서 오랜만에 JDBC를 이용해 데이터를 입출력하는 프로젝..

JAVA_SPRING 2022.02.15 0

HashSet, ArrayList, LinkedList, Vector 각 클래스 간의 특징과 공통점

HashSet, ArrayList, LinkedList, Vector 각 클래스 간의 특징과 공통점 HashSet, ArrayList, LinkedList, Vector의 공통점은 부모 클래스가 Collection 인터페이스를 상속받고 있다는 점이다. 인터페이스 특징 구현 클래스 List 순서가 있는 데이터의 집합, 데이터의 중복을 허용한다. ArrayList, LinkedList, Stack, Vector Set 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다. HashSet, TreeSet Vecto..

JAVA 2022.02.07 0

String 클래스에 대한 학습 테스트

요구사항 1 "1,2"을 ,로 split 했을 때 1과 2로 잘 분리되는지 확인하는 학습 테스트를 구현한다. "1"을 ,로 split 했을 때 1만을 포함하는 배열이 반환되는지에 대한 학습 테스트를 구현한다. “1,2”를 1과 2로 분리하는 학습 테스트 @Test void test1_1() { String[] strings = "1,2".split(","); assertThat(strings).contains("1", "2"); } “1”을 “,”로 분리했을 때, 1만을 포함하는 배열이 반환하는지 학습하는 테스트..

JAVA 2022.02.05 0

Set Collection에 대한 학습 테스트

Set 데이터가 주어졌을 때 요구사항을 만족시키자 public class SetTest { private Set numbers; @BeforeEach void setUp() { numbers = new HashSet<>(); numbers.add(1); numbers.add(1); numbers.add(2); numbers.add(3); } // Test Case 구현 } 요구사항 1 Set의 size() 메소드를 활용해 Set의 크기를 확인하는 학습테스트를 구현한다. @Test void checkSize() { assertThat(numbers.size()).isEqualTo(3); } 요구사항 2 Set..

JAVA 2022.02.05 0

Build Automation Tool - Maven, pom.xml

Maven Java를 위한 Build Automation Tool C#, Ruby 등 다른 언어에도 사용 가능 Project Object Model(POM) xml 형태로 프로젝트 정의 pom.xml을 분석해 프로젝트 빌드 pom.xml 구조 xml 파일 project ... xmlns="a" xmlns 속성은 해당 문서를 위한 XML 네임스페이스(namespace)를 명시한다. 기본 네임스페이스의 선언을 명시한다. xmlns:prefix="a" prefix 속성 값에는 이름 앞에 붙게..

SPRING BOOT 2022.02.02 0

자바 기본자료형(Primitive data type)을 왜 사용할까?

Validation을 통해 데이터 타입이 들어오는 값을 검증하는 공부를 하면서 기본자료형에 null 타입이 들어오면 Null 예외가 발생해 오류가 던져지는 모습을 경험했다. 빈 칸도 받을 수 있다면 오류가 발생하지 않을텐데라는 생각을 했고, 왜 기본 자료형을 사용하는지 의문이 들었다. 하지만, 여러 자료들을 찾아보면서 내가 처음 생각한 방법부터 틀렸고, 기본 자료형과 참조 자료형을 적재 적소에 사용해야한다는 것을 알았다...

JAVA 2022.01.29 0

객체 지향의 사실과 오해 - 객체, 그리고 소프트웨어 나라

객체 지향의 사실과 오해를 읽고 정리한 글 섹션 - 02. 이상한 나라의 객체 내용 하나의 개별적인 실체로 식별 가능한 물리적인 또는 개념적인 사물은 어떤 것이라도 객체가 될 수 있다. 그리고 그 객체를 상태, 행동, 식별자를 지를 통해 구분하면 객체들 간의 협력 관계를 유연하고 간결하게 정의할 수 있다. 상태 객체가 주변 환경과의 상호작용에 어떻게 반응하는가는 그 시점까지 객체에 어떤 일이 발생했느냐에 좌우된다...

Programming 2022.01.25 0

스프링을 이용한 메시지 기능과 메시지 기능 국제화(HTTP 헤더 값을 이용한 방법과 파라미터를 이용한 방법)

스프링을 이용한 메시지 기능과 메시지 기능 국제화 메시지 기능 메시지 기능은 다양한 메시지를 한 곳에 관리하도록 하는 기능을 말한다. 여러 화면에 보이는 단어들을 일일이 변경하려면 모든 파일들을 다 들어가야하지만, 메시지 기능을 이용하면 한 곳에 관리해 보다 쉽게 변경하고 관리할 수 있다. 국제화 메시지 기능을 각 나라별로 별도로 관리할 수 있도록 국제화를 지원하는 기능이다. 특정한 값을 넘겨받아 어디에 오..

JAVA_SPRING 2022.01.22 0

스프링에서 로깅

✔️ 스프링에서 로깅 로그 사용 장점 쓰레드 정보와 클래스 이름 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조절할 수 있다. 17:38:15.243 [main] INFO hello.springmvc.LogTest - info 로그가 출력이 됩니다. 로그 레벨에 따라 출력할 수 있어 로그를 상황에 맞게 사용할 수 있다.설정 파일에서 지정한 로깅 레벨이 아닌 경우 로그는 출력되지 않지만, System.out은 설정이 불가능하다. System.out.println("error 로그..

JAVA_SPRING 2022.01.18 0