본문 바로가기

전체 글52

Java - Stream 스트림 (Stream) 함수형 프로그래밍 함수형 프로그래밍의 특징 수학적 함수의 계산을 통해 자료를 처리하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임 Java 8부터 Optional과 람다식과 같은 함수형 프로그래밍과 비동기 논블로킹의 기능 도입 비동기 논블로킹 A 함수가 B 함수를 호출할 경우 A 함수는 그대로 실행이되고 B 함수 실행 완료가 되면 콜백함수를 전달하는 형태 A 함수가 B 함수가 제대로 끝났는지 유무는 신경쓰지 않음 ex) 사용자 이벤트 처리, 네트워크 응답 처리, 파일 입출력 병렬 처리, 이벤트 지향 프로그래밍에 적합 함수형 프로그래밍이 주목받기 시작한 이유 2000년대 초반까지는 CPU 클럭 증가, 실행 시간 최적화, Cache 크기 증가를 통해 소프트웨어의 싱글 프로세스, .. 2022. 11. 18.
토이 프로젝트 - Smart Store 토이프로젝트 시작 그동안 배운 내용들을 가지고 한 주간 토이프로젝트를 진행 했다. 최대한 객체지향적인 코드를 짜고, 클래스 및 메소드 설계를 기존 List,Set,Map과 같은 API를 사용하지 않고 구현하는 것을 목표로 했다. 또한 핀테크 서비스라는 특성에 맞게 꼼꼼하게 예외처리를 하는 것을 목표로 하여 개발하였다. 프로젝트 주제 스마트스토어 운영진을 위한 고객 분류 프로그램 개발 비회원, General, VIP, VVIP 4가지 등급으로 고객을 분류하는 프로그램 분류기준은 무조건 총 이용시간과 총 결제금액으로 정의하고 각 그룹이 되기 위한 최소 이용시간과 결제금액은 해당 프로그램을 사용하는 운영진에게 입력받는 형태 프로젝트 정의서 스마트스토어를 운영 중인 Sally는 본인이 운영 중인 스마트스토어에서.. 2022. 11. 17.
Java - 예외 처리, 로그 예외 처리는 왜 해야 하나? 프로그램에서의 오류 컴파일 오류(compile error) 프로그램 코드 작성 중 발생하는 문법적 오류 최근에는 개발 환경(eclipse)에서 대부분의 컴파일 오류는 detection 됨 실행 오류(runtime error) 실행 중인 프로그램이 의도 하지 않은 동작(bug)을 하거나 프로그램이 중지 되는 오류 실행 오류는 비정상 종료가 되는 경우 시스템의 심각한 장애를 발생할 수 있음 예외 처리의 중요성 프로그램의 비정상 종료를 피하여 시스템이 원할이 실행되도록 함 실행 오류가 발생한 경우 오류의 과정을 재현하는 것은 현실적으로 힘들다 오류가 발생한 경우 log를 남겨서 추후 log 분석을 통해 그 원인을 파악하여 bug를 수정하는 것이 중요 오류와 예외 클래스 시스템 오류.. 2022. 11. 17.
Java - 제네릭, 컬렉션 제네릭(Generic) 프로그래밍 제네릭 자료형 정의 클래스에서 사용하는 변수의 자료형이 여러개 일수 있고, 그 기능(메서드)은 동일한 경우 클래스의 자료형을 특정하지 않고 추후 해당 클래스를 사용할 때 지정 할 수 있도록 선언 실제 사용되는 자료형의 변환은 컴파일러에 의해 검증되므로 안정적인 프로그래밍 방식 컬렉션 프레임워크에서 많이 사용되고 있음 예시 public class GenericPrinter { private T material; public void setMaterial(T material) { this.material = material; } public T getMaterial() { return material; } public String toString(){ return mater.. 2022. 11. 17.
Java - 자료구조 (배열,연결리스트,스택,큐) 자료구조 자료구조(Data Structure)란 무엇인가? 프로그램에서 사용할 많은 데이타를 메모리 상에서 관리하는 여러 구현방법들 효율적인 자료구조가 성능 좋은 알고리즘의 기반이 됨 자료의 효율적인 관리는 프로그램의 수행속도와 밀접한 관련이 있음 여러 자료 구조 중에서 구현하려는 프로그램에 맞는 최적의 자료구조를 활용해야 하므로 자료구조에 대한 이해가 중요함 자료구조의 종류 선형 자료구조 한 줄로 자료를 관리하는 구조 자료들 간의 앞뒤 관계가 1:1의 선형관계 배열(Array), 연결리스트(LinkedList), 스택(Stack), 큐(Queue) 등이 있다. 비선형 자료구조 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 구조 자료들 간의 앞뒤 관계가 1:n, 또는 n:n 의 관계 트리(Tree)와.. 2022. 11. 17.
Java - 자바의 유용한 클래스 Object 클래스 - 모든 클래스의 최상위 클래스 java.lang 패키지 import java.lang.*; 프로그래밍시 import 하지 않아도 자동으로 imort됨 많이 사용하는 기본 클래스들이 속한 패키지 ex) String, Integer, System... 모든 클래스는 Object 클래스를 상속 받는다 java.lang.Object 클래스 모든 클래스는 Object에서 상속받고, Object 클래스의 메서드 중 일부는 재정의해서 사용할 수 있음 평소에는 컴파일러가 extends Object를 추가함 public class Student {} -> public class Student extends Object {} toString() 메서드 객체의 정보를 String으로 바꾸어서 사용할 때.. 2022. 11. 17.