Programming/Java

프로젝트 API를 개발하다보니 API 응답에 대한 뭔가 체계적인 방법을 찾고 싶었다. 그래서 열심히 서치하며 정리를 해보았다. 일단 결론만 보자면, ResponseWrapperDto : 전반적인 응답에 대한 공통 포맷ErrorResponse : 에러 상황에 대한 구체적 응답 포맷ErrorCode : 에러의 종류별로 상태/코드/기본 메시지를 모아둔 EnumFieldError : 유효성 검증 실패 등에서 발생하는 구체적 필드단위 에러정보를 담기 위한 서브클래스 이 네가지를 구분해서 만들었다. 그 이유는 !?!??-> API 응답을 체계적으로 분류하고, 일관된 형식으로 제공하려고 ! 더 자세히 살펴보겠다. 1. ResponseWrapperDto: 정상 응답을 감싸는 공통 DTO. package com.ex..


코테 문제를 풀다보니 여러가지 해설을 보게 되는데, StringBuilder랑 StringBuffer가 자주 등장하는데 하나도 모르겠어서 정리해보고자 했다. 찾다보니 String이란 클래스 자체가 자바에선 중요한 역할..? 특별한 클래스라고 생각된다. 여태 그냥 스트링은 스트링이지~ 이러고 썼는데.. ㅠㅡㅠ 어려운 녀석이었다. 하나씩 살펴보자 1. String클래스 ** 중요함! ** immutable (변경 불가능한) 클래스 읽어 올 수만 있고, 변경할 수는 없다. - String문자열을 저장하기 위해서 문자형 배열 참조변수(char[]) value를 인스턴스 변수로 정의한다. 즉 ..! String 인스턴스를 생성할 때 이 value에 문자형 배열로 저장된다는 것. * The value is used..


: 자바에서 만드는 변수는 한정적이므로 프로그램이 종료되면 사라진다. 입력받고 조작한 데이터를 저장하고 싶다면? 파일로 저장해두어야 한다.! >> File I/O csv파일 사용 (컴마,를 기준으로 데이터 구분) + 이 데이터를 담을 클래스 만들기. 1. FileReader & FileWriter : 문자 기반의 파일을 읽어들이는 기본이 되는 클래스 - 파일 이름만 알고 있으면 사용 가능. - 열고 나서 할 작업을 다 하면 닫아주는게 좋음 (닫지 않으면 자원 소모, 파일 사용불가 등의 사태가 발생한다) >> 자바 7 이전에는 reader.close()를 직접 해주어야 했다. // finally에서 닫아줄 수 있도록 try-catch문 밖에 변수를 선언한다. FileReader reader = null; ..

: Java 8 버전에 소개된 데이터 모음을 다루는 방법. ✅ 원래 데이터의 모음이 있다면...? 데이터 모음의 데이터가 하나씩 나와서 특정 작업(함수)의 목록을 거쳐 결과 데이터를 만들어내는 방식으로 동작한다. ~> 어떤 작업을 진행할지를 전달하려면 함수를 인자로 전달한다. - 데이터 모음을 Stream으로 변환, 해당 데이터에 할 작업들을 선택, 그 결과를 필요한 형태로 반환하는 과정.. 3단계 1) Stream 만들기 2) Intermediate Operation 3. Terminal Operation 순서로 동작 > 훨씬 간결하게 코드 작성 가능. 작업을 가하는 것이 아니라 작업을 전달해주는 것! List namesWithA = nameList.stream() //Stream을 만들고 .filte..


1. Generic Type Reference - Generic : 클래스, 인터페이스, 메서드를 좀더 일반적인 상황에서 활용하고 재사용성을 높이는 방법. - 다양한 자료형에 대해 동일한 동작을 할 수 있는 방법을 제공. ex. 정수형 배열을 속성으로 가지고, 그 최댓값과 평균을 관리하는 클래스가 있다면..? 똑같은 기능을 실수로 만들고 싶다! > 그러면 또 똑같은 형태의 클래스를 만들거나 클래스 내부에 double[]을 담는 속성/메서드 모두 구현해야한다.... ㅠㅡㅠ public class IntArrayWrapper { private final int[] intArray; public IntArrayWrapper(int[] intArray) { this.intArray = intArray; } //..


- 예외 : 일반적인 코드수행 중 발생한 예상치 못한 상황 - 예외처리 (Exception Handling) : 예외가 발생했을 경우 해당 상황을 수습하고 정상적인 흐름으로 되돌리는 기법. 1) try-catch-finally - try : 예외 발생 가능한 곳 - catch : 내부에서 발생할 수 있는 예외 (여러 개의 catch문도 가능) > 두가지 예외 블럭이 동시에 만족되는 상황에는 먼저오는 블럭이 먼저 실행. > 서로 다른 예외지만 동일하게 처리하고 싶을 때는 |로 하나의 catch문 안에 넣을 수 있음. - catch {} : 예외 발생시 실행되는 코드. (e.getMessage() 활용하여 예외 발생 코드가 작성한 메시지 확인 가능) - finally : 예외가 발생하든 안하든 실행하고 싶은..

1. 객체지향 프로그래밍 1) 캡슐화 (Encapsulation) : 데이터와 기능을 하나의 단위(클래스)로 묶어서 활용하는 것. - 외부의 코드가 내부의 작동 방식을 고려하는 상황 방지 - 객체 내부의 데이터를 외부에서 자유롭게 접근하지 못하도록 하는 정보은닉의 개념까지 포함. (접근 제어자 활용) 2) 상속 (Inheritance) : 이미 존재하는 클래스를 재활용하여 상속받은 클래스의 기능을 재활용/ 확장할 수 있게 하는 것. - 자식 클래스가 부모 클래스의 속성과 기능 공유 - 기능을 덮어써서 독자적인 동작 구현 - 코드 재사용성, 확장성 증진 3) 다형성 (Polymorphism) : 서로 다른 객체가 하나의 공통된 클래스 형태로 취급. - 메서드 오버로딩 : 같은 이름의 메서드로 여러 기능 활..