반응형

java 284

[객체지향의 사실과 오해] 3. 타입과 추상화 - 개발 도서 정독하기

일단 컴퓨터를 조작하는 것이 추상화를 구축하고, 조자하고, 추론하는 것에 관한 모든 것이라는 것을 깨닫고 나면 (훌륭한) 컴퓨터 프로그램을 작성하기 위한 중요한 전제 조건은 추상화를 정확하게 다루는 능력이라는 것이 명확해진다. - Keith Devlin - Intro 주요 대도시 지하에는 지하철이 거미줄처럼 도시 곳곳을 연결하고 있다. 지하철을 이용하는 승객의 목적은 하나의 역에서 다른 역으로 이동하는 것이다. 어떤 역에서 출발해야 하는지와 어떤 역에서 환승해야 하는지, 어떤 역을 거쳐야만 가장 쉽고 빠르게 목적지에 도착할 수 있는지를 직관적이고 단순하게 보여주는 것이다. 1993년 해리 벡은 사실적인 지형과 축척은 무시하고 역 사이의 연결성에만 집중한 지하철 노선도를 창조했다. 이 지하철 노선도는 역의..

[Spring Batch] 스프링 배치 DB 스키마 이해하기 - Spring boot 2.x

본 내용은 온라인 강의 사이트 인프런의 정수원 님의 강의 내용이 포함되어 있습니다. 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch - 인프런 | 강의 초급에서 중~고급에 이르기까지 스프링 배치의 기본 개념부터 API 사용법과 내부 아키텍처 구조를 심도있게 다룹니다. 그리고 스프링 배치 각 기능의 흐름과 원리를 학습하게 되고 이를 바탕으 www.inflearn.com 스프링 배치 DB 스키마 Job 관련 테이블 batch_job_instance Job이 실행될 때 JobInstance 정보가 저당되며 job_name과 job_key를 키로 하여 하나의 데이터가 저장된다. 동일한 job_name과 ..

[Spring Batch] 스프링 배치 간단한 Job 구현하고 실행하기 - Spring boot 2.x

본 내용은 온라인 강의 사이트 인프런의 정수원 님의 강의 내용이 포함되어 있습니다. 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch - 인프런 | 강의 초급에서 중~고급에 이르기까지 스프링 배치의 기본 개념부터 API 사용법과 내부 아키텍처 구조를 심도있게 다룹니다. 그리고 스프링 배치 각 기능의 흐름과 원리를 학습하게 되고 이를 바탕으 www.inflearn.com 스프링 배치 프로젝트 구성 및 환경 설정 아래 링크를 통해 스프링 배치를 실행하기 위한 프로젝트 생성 및 환경 설정을 수행하고 나면 간단한 스프링 배치 Job을 구성하여 실행할 수 있다. https://ittrue.tistory.co..

[객체지향의 사실과 오해] 2. 이상한 나라의 객체 - 개발 도서 정독하기

객체지향 패러다임은 지식을 추상화하고 추상화한 지식을 객체 안에 캡슐화함으로써 실세계 문제에 내재된 복잡성을 관리하려고 한다. 객체를 발견하고 창조하는 것은 지식과 행동을 구조화하는 문제다. Rebecca Wirfs-Brock 객체지향과 인지 능력 인간은 본능적으로 세상을 독립적이고 식별 가능한 객체의 집합으로 바라본다. 많은 사람들이 객체지향을 직관적이고 이해하기 쉬운 패러다임이라고 말하는 이유는 객체지향이 세상을 자율적이고 독립적인 객체들로 분해할 수 있는 인간의 기본적인 인지 능력에 기반을 두고 있기 때문이다. 인간이 직접적으로 지각할 수 있는 대부분의 객체는 물리적인 경계를 지닌 구체적인 사물이다. 그러나 인간의 인지 능력은 물리적인 한계를 넘어 개념적으로 경계 지을 수 있는 추상적인 사물까지도 ..

[객체지향의 사실과 오해] 1. 협력하는 객체들의 공동체 - 개발 도서 정독하기

시너지를 생각하라. 전체는 부분의 합보다 크다. Stephen R. Covey Intro 객체지향을 처음 접하는 대부분의 사람들은 “객체지향이란 실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임”이라는 설명과 마주하게 된다. 이 설명이 전달하고자 하는 핵심은 객체지향 프로그래밍이란 현실 속에 존재하는 사물을 최대한 유사하게 모방해 소프트웨어 내부로 옮겨오는 작업이기 때문에 객체지향 소프트웨어는 실세계의 투영이며, 객체란 현실 세계에 존재하는 사물에 대한 추상화라는 것이다. 실세계의 모방이라는 개념은 객체지향의 기반을 이루는 철학적인 개념을 설명하는 데는 적합하지만 유연하고 실용적인 관점에서 객체지향 분석, 설계를 설명하기에는 적합하지 않다. 실제 애플리케이션을 개발하면서 객체에 직접적으로 대응되는..

[Java] 자바 로깅(Logging) - log4j, log4j2, slf4j, logback

로깅(Logging) 로깅(Logging)은 애플리케이션의 동작에 대한 정보인 로그(Log)를 기록하는 행위를 말한다. 로그는 컴퓨터의 처리 내용이나 이용 상황을 기록하는 것으로 실행 중인 소프트웨어의 동작 상태를 파악하고 문제가 발생했을 때 원인 파악에 도움을 준다. 따라서 웹 또는 앱 애플리케이션 개발에도 문제를 해결하기 위해 로그를 남겨야 한다. 로그의 장점 로그 레벨(Log level)을 지정할 수 있다. 애플리케이션의 동작 흐름을 파악할 수 있다. 예외 발생 시 해당 정보를 쉽게 파악할 수 있다. 자바에서는 로그를 남기기 위한 여러 가지 로깅 프레임워크를 제공한다. 대표적으로 log4j, log4j2, logback 등이 있다. slf4j slf4j(Simple Logging Facade for..

[Java] 자바 JSON 라이브러리 Gson 사용법

Gson Gson은 구글에서 만든 직렬화(Serialization), 역직렬화(Deserialization)를 쉽고 간편하게 해주는 라이브러리다. 자바 객체와 Json 포맷 간의 변환하는 데 사용한다. 주로 Jackson 라이브러리와 많이 비교되기도 한다. Gson 라이브러리 의존성 추가 Gradle dependencies { implementation 'com.google.code.gson:gson:2.10.1' } Maven com.google.code.gson gson 2.10.1 사용 방법 User 클래스 다음 코드는 name과 age 필드를 가진 User 클래스로, 예제에 사용될 생성자와 getter, toString 메서드가 구현되어 있다. public class User { private S..

[Java] 자바 JSON 라이브러리 Jackson - ObjectMapper 사용법

Jackson Jackson 라이브러리는 자바에서 데이터 처리를 위한 라이브러리로 xml, yml, properties, csv, json 등 다양한 형식의 데이터 처리가 가능한 라이브러리다. 일반적으로 자바용 JSON 라이브러리로 알려져 있다. Jackson 라이브러리는 스트림 방식으로 속도가 빠르고 유연하며, 어노테이션 방식으로 메타 데이터를 기술할 수 있다. ObjectMapper를 통해 Java 객체와 JSON 형식의 문자열 간의 직렬화(Serialization), 역직렬화(Deserialization)가 가능하다. 스프링 부트에서는 Jackson 라이브러리가 기본적으로 추가되어 별도의 의존성 추가 없이 사용할 수 있다. Jackson 라이브러리 3가지 핵심 모듈 jackson-core low-l..

[Java] 객체 null 체크 - Objects.isNull() vs == 연산자

객체의 널 체크 자바에서 객체의 null 여부를 체크하기 위해서는 두 가지 방법을 사용할 수 있다. java.utils.Objects에 구현되어 있는 isNull 메서드 == 연산자를 사용 사용 방법 isNull() import java.util.Objects; public class Example { public static void main(String[] args) { String str1 = null; String str2 = "hello"; System.out.println(Objects.isNull(str1)); System.out.println(Objects.isNull(str2)); } } // 출력 true false == 연산자 public class Example { public st..

[프로그래머스] 이상한 문자 만들기 - 자바(Java)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12930 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수..

반응형