Programming/Java(11)
-
[Java] 정규표현식
[Java] 정규표현식 프로젝트를 진행하면서 입력해서 들어오는 값이 규격에 맞는 값인지 확인하기 위해 사용, 프로젝트 진행 시에는 급하게 검색해서 나오는 자료를 바탕으로 진행했다. 또한 문자열을 다루는 몇몇 알고리즘의 경우 해당 정규표현식을 사용하여 접근을 하기도 한다. 다시 익히려고 하는데 생각보다 해당 문법방식이 익숙하지 않아 머리에 잘 들어오지 않았다. 미루고 미루다가 공부하고 정리할겸 포스팅 시작 정의 정규 표현식 - regular expression - regexp / regex / rational expression 텍스트 편집기와 프로그래밍 언어에서 문자열의 검색과 치환을 위해 사용 프로그래밍 언어에서 대부분의 언어가 라이브러리를 통해 해당 기능을 제공 형식 언어 - 특정한 규칙을 가진 문자..
2022.12.27 -
[Java] Thread / Thread 클래스, Runnable 인터페이스 이용
[Java] Thread [Operate System] Thread (tistory.com) [Operate System] Thread Thread 스레드 - 프로세스 내에서 프로세스의 자원을 이용하는 여러 실행 흐름의 단위이다. 스레드는 프로세스 내의 Code, Data, Heap 영역은 다른 스레드와 공유하고 stack의 영역은 따로 할당 받음 프 skyriv312079.tistory.com 이전에 스레드를 정리한 것을 이용해서 Java로 다시 학습해보았다. Thread 자바에서 스레드를 작성하는 방법은 2가지가 존재한다. Thread 클래스 상속으로 이용 Runnable 인터페이스 이용 이 두가지를 하나 씩 해보려고 한다. Thread - Thread 클래스 이용 Thread 클래스를 상속받아 사용..
2022.12.03 -
[Java] Java와 JVM
[Java] Java와 JVM Java를 사용을 하면서 Java가 어떻게 코드를 인식하고 실행하는지에 대해 학습하는 시간을 가지게 되었다. 해당 글은 그 내용들을 정리하면서 작성하게 되었다. 프로그래밍 언어 프로그래밍 언어 - 컴퓨터가 실행할 프로그램을 작성하는 언어이다. 이때 CPU는 기계어 - 이진수(binary code)인 0과 1만 이해가 가능하다. 그렇지만 사람이 기계어로 직접 프로그램을 작성하는 것은 어려운 일이기에 기계어를 ADD / SUB / MOVE 등의 상징적인 기호로 1대 1 대응을 한 어셈블리어가 등장하게 된다. 다만 이 어셈블리어 또한 사람이 직접 다루기는 어렵기에 C / C++ / Java 등의 이해하고 표현하기 쉬운 언어가 등장하게 되는데 이러한 언어를 고급 언어라고 한다. 이..
2022.11.30 -
[Java] 객체지향설계 - SOLID
[Java] 객체지향 설계 - SOLID 객체 지향 설계, 우리가 사는 세상을 객체들끼리의 상호작용으로 보고 이를 프로그래밍 적으로 설계하여 표현을 하는 것이다. 이러한 것을 객체지향 설계라고 하며 해당 설계를 진행할 때 지켜져야 하는 5개의 원칙이 존재한다. 그리고 이 원칙을 SOLID 원칙이라고 하며 오늘은 이에 대해 공부한 내용들을 정리하고자 한다. SOLID 원칙 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용해서 설계를 진행하면 된다. 원칙들은 각 원칙의 앞글자를 따와서 가져왔으며 아래와 같다 SRP : 단일 책임 원칙 (Single responsebility principle) 하나의 클래스는 하나의 책임만 가져야 한다. OCP : 개방 폐쇄..
2022.11.21 -
[Java] Stream이란?
자바의 기능을 살펴보면 Stream이란 것이 존재한다. 그럼 이 Stream은 무엇일까? Stream 배열이나 컬렉션에 담긴 데이터를 다룰 때, 반복문이나, iterator를 사용시 코드가 길어지고 가독성이 떨어진다. 이러한 문제점이 존재하기에 Stream이 등장한 것이다. Stream default Stream stream() { return StreamSupport.stream(spliterator(), false); } 데이터의 흐름 collection을 소스로 가지고 처리를 하는 것 람다를 활용하여 효율적인 코드를 작성할 수 있다 Stream의 특징 데이터를 담고 있는 컬랙션이 아니다 컬렉션과 연관되어 데이터를 1회성으로 처리하는 역할이다 한번 컬렉션 요소에 맞춰 function 및 역할을 수행하..
2022.11.15 -
[Java] 객체지향
자바는 객체지향 언어라고 한다. 그렇다면 이 객체지향이란 것은 무엇을 의미하는 것일까? 객체(Object) 객체(object)를 어렵게 생각하지 않고 우리가 알고 있는 하나의 대상이라고 생각한다. 즉 사람, 의자, 음식, 동물 같은 대상들을 각자의 범주로 묶어서 표현한 것을 객체라고 한다. 즉 객체지향이란 각 대상이 다른 대상에게 행동을 요청하고 응답을 받으며 상호작용하는 것으로 이해하였다. 객체지향의 특성 캡슐화 상속 다형성 흔히 이 세가지를 객체지향의 특성이라고 한다. 그럼 이제부터 기본 개념부터 특성까지 정리해보자. 캡슐화 캡슐화를 이해할 때 몇 가지를 알고 넘어가야 한다. 바로 클래스, 필드, 메서드이다. 클래스 표현하고자 하는 객체, 대상의 공통 속성을 하나에 정의한 것 객체의 속성을 정의해 놓..
2022.11.14