Java 33

[Java] Naming Convention: Camel Case, Pascal Case

Naming Convention코드 작성 시 변수, 함수, 클래스, 패키지 등 다양한 요소에 일관된 이름 규칙을 적용하는 것.코드의 가독성과 유지 보수성을 높일 수 있다.대표적으로 Camel Case와 Pascal Case가 있다. (1) Camel Case첫 글자는 소문자로, 이후 단어의 첫 글자는 대문자로 작성.변수명, 메소드(함수)명에 사용.ex) botName, sendMessage() (2) Pascal Case단어의 첫 글자를 대문자로 작성.클래스명, 인터페이스명에 사용.ex) public class Request, public interface Sender   참고: https://www.theserverside.com/answer/Pascal-case-vs-camel-case-Whats-t..

Java 2024.11.06

[Java] String, StringBuilder, StringBuffer

1. String불변성(Immutable)new 연산자 vs literal 방식2. StringBuilder와 StringBuffer공통점 - 가변성(Mutable)차이점 - 동기화(Synchronization)활용 시점1. String불변성 (Immutable)Java에서 String 객체는 값이 할당되면 이 공간은 변하지 않는다.String이 변경될 때마다 새로운 메모리를 할당받는다.아래 예시처럼 값 변경시, String 값만 가리키는 주소가 달라진다.예시 코드public class Main { public static void main(String[] args) { String string = "String"; StringBuilder stringBuilder = ne..

Java 2024.10.06

[Java] Java에서의 Stream (스트림)

1. Stream2. Java의 Stream바이트 기반 스트림문자 기반 스트림3. Java의 보조 Stream(필터 Stream)InputStreamReaderOutputStreamWriterBuffer(버퍼)BufferedInputStream과 BufferedReaderBufferedOutputStream과 BufferedWriter* Stream 상속 관계  1. Stream단방향으로 이동하는 데이터의 흐름.프로그램을 기준으로, 프로세스가 데이터의 도착지면 입력 스트림(InputStream) / 프로세스가 데이터의 출발지면 출력 스트림(OutputStream)Stream은 사용이 끝난 후 .close()로 자원을 해제해야 한다, 보조(필터) 스트림이 닫히면 연결된 기본 스트림도 닫힌다.(try wit..

Java 2024.09.12

[Java] Java Logging

SLF4J (Simple logging facade for java) 다양한 로킹 프레임워크에 대한 간단한 Facade 또는 추상화 역할을 하여 최종 사용자가 배포시 원하는 로깅 프레임워크를 사용할 수 있도록 한다.Logback 다양한 Logging framework 중 하나.1. 로그 레벨error > warn > info > debug > traceerror : 요청 처리 중 문제가 발생.warn : 프로그램 실행은 문제 없지만, 향후 문제가 일으킬 수 있다.info : 정보성 메시지.debug : 개발 시 디버그 용도로 사용.trace : 좀 더 상세한 이벤트를 나타낼 때 사용.2. Logback 설정 및 사용https://mvnrepository.com/ 에서 slf4j, logback class..

Java 2024.09.11

[Java] Maven (메이븐)

1. JSON과 XML2. Package와 jar 3. Maven1. JSON과 XML공통점데이터를 저장하고 전달하기 위해 고안됨.기계뿐만 아니라 사람도 쉽게 읽을 수 있다.계층적인 데이터 구조를 가진다.다양한 프로그래밍 언어에 의해 파싱될 수 있다.XMLHttpRequest 객체를 이용하여, 서버로부터 데이터를 전송받을 수 있다.XML (Extensible Markup Language) 마르코 marco 31 70JSON (Java Script Object Notation)/* "name":"value", "name2:value2" */{ "name": "마르코", "id": "marco", "age": 31, "weight": 70} 2. Package와 j..

Java 2024.09.11

[Java 연습문제] Singleton과 Prototype 리포지토리 *

Singleton과 Prototpye 리포지토리GoF 디자인 패턴 중, 생성 패턴에 속하는 ProtoType 패턴은 코드를 클래스들에 의존시키지 않고 기존 객체들을 복사할 수 있도록 하는 패턴입니다.객체가 있고, 그 객체의 정확한 복사본을 만들고 싶을 경우, 일반적인 방식에서는 같은 클래스의 새 객채를 생성한 다음 원본 객체의 모든 필드를 새 객체로 복사해야 합니다. 하지만 이런 경우, 몇 가지 위험성과 불편한 점이 있습니다.   1. 원본 객체의 필드 중 일부는 private으로 선언되어 있어, 외부에서 볼 수 없다.   2. 해당 원본 객체의 클래스 소스코드를 알아야 할 필요가 있다.프로토타입 패턴은 실제로 복제되는 객체들에 복제 프로세스를 위임합니다. 복제를 지원하는 객체를 프로토타입이라고 하며, ..

[Java 연습문제] Iterable과 Comparable * - Book 예제

"book.csv"을 읽어서 Book 객체로 변환한 후, 이를 LinkedList에 저장한다. Books 클래스는 Iterator 패턴을 통해 for-each문으로 쉽게 순회할 수 있다. 코드 book.csv더보기더보기더보기더보기더보기1|이노베이터|창의적인 삶으로 나아간 천재들의 비밀|월터 아이작슨|innovator.jpg|42000|초특급 베스트셀러 『스티브 잡스』에 이은 월터 아이작슨의 놀라운 역작!\r\n최초의 컴퓨터에서 트위터와 페이스북까지,\r\n디지털 혁명을 선도한 창의적인 천재들의 이야기\r\n\r\n국내에서만 70만 부가 판매된 세계적인 베스트셀러 『스티브 잡스』의 저자 월터 아이작슨이 10년을 준비한 역작, 『이노베이터』가 돌아왔다. 세상을 바꾸는 혁명을 일궈낸 창의적인 천재들의 이야기를..

[Java] 14. Collections Framework

Chapter 1: Collection FrameworkCollection 개요Java Collections FrameworkCollection 클래스의 저장 구조Java Collections Framework 구성Collection 인터페이스Collection 인터페이스의 주요 메소드Chapter 2: Iterator, Comparable, ComparatorIterable과 IteratorComparableComparatorChapter 3: ListList InterfaceArrayListLinkedListStackQueueChapter 4: MapHashMapHashTablePropertiesChapter 5: Collections 클래스Collections 클래스Collection 동기화Unmo..

Java 2024.09.02

[Java] 13. Anotation(어노테이션)

Annotation(어노테이션) 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시켜, 프로그램에 유용한 기능을 포함시키고 정보를 제공할 수 있는 기능.  출처 : https://github.com/gikpreet/class-programming_with_java/blob/master/Module%2013%20Annotation/Module%2013%20Annotation.md class-programming_with_java/Module 13 Annotation/Module 13 Annotation.md at master · gikpreet/class-programming_with_javaContribute to gikpreet/class-programming_with_j..

Java 2024.09.02

[Java] 12. Lambda Expression(람다식)

Chapter 1:  Lambda Expression 개요Functional InterfaceAnonymous ClassLambda Expression 사용Chapter 2:  Lambda Expression 사용Lambda Expression 형식메소드 참조Chapter 3:  Lambda Expression 활용Chapter 1:  Lambda Expression 개요 Anonymous Method 형식으로 동작하는 Lambda Expression은 파라미터를 받아 짧은 코드 블록으로 수행하고 필요에 따라 값을 반환하는 표현 방법을 말한다. Functional Interface  -> 람다식, 메서드 참조로 사용 가능.하나의 abstract method를 가지고 있는 Interface(SAM(Sing..

Java 2024.09.01