Programming/Java

Programming/Java

[Java] 문자열 클래스: String, StringBuffer, StringBuilder

Java에서 문자열은 매우 중요한 데이터 형식으로 사용되며, 문자열을 효율적으로 처리하기 위해 String, StringBuffer, StringBuilder 세 가지 클래스가 제공된다. 개발자는 각 클래스를 사용 목적에 맞게 선택함으로써 프로그램의 성능과 안정성을 극대화할 수 있다. String 클래스는 불변성으로 안정성을 보장하며, 문자열 수정이 거의 없는 경우에 적합하다. StringBuffer 클래스는 멀티스레드 환경에서 안전하게 문자열을 동적으로 수정할 때 사용한다. StringBuilder 클래스는 단일 스레드 환경에서 빠르게 문자열을 처리할 때 사용한다. 전체 코드 public class Main { public static void main(String[] args) { // String ..

Programming/Java

[Java] 프로세스와 스레드: 컴퓨터의 작업 처리 단위

웹 브라우저를 실행하면 한 번에 여러 웹 페이지를 로드하고 사용자의 입력을 처리한다. 이러한 복잡한 작업을 가능하게 하는 것이 프로세스와 스레드이다. 프로세스와 스레드를 이해하고 구현함으로써 운영체제의 동작 원리를 이해하고, 효율적인 프로그램을 개발할 수 있다. 또한, 교착상태(프로세스나 스레드가 서로 필요한 자원을 점유하고 있어서 더 이상 진행할 수 없는 상태)와 같은 문제를 해결하기 위한 다양한 동기화 기법을 이해할 수 있다. 프로세스와 스레드 요약 프로세스(Process) 스레드(Thread) 운영체제로부터 자원을 할당받은 작업의 단위 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위 프로세스는 각각 독립된 메모리 공간을 가지며 실행되는 프로그램의 인스턴스이며, 스레드는 프로세스 내에서 실행되는..

Programming/Java

[Java] static 멤버와 메서드의 활용 및 주의점

💡static 키워드란? Java에서 static 키워드는 클래스에서 공유되는 변수나 메서드를 정의할 때 사용하며, 메모리에 한번 할당되고 나면 프로그램이 종료될 때 해제된다. static 변수를 남발하면 메모리 관리에 문제를 일으킬 수 있으므로 신중하게 사용해야 한다. 과도한 static 멤버의 사용은 프로그램의 성능을 저하시키고, 메모리 누수의 원인이 될 수 있다. static 변수는 메모리에 고정적으로 할당되어 프로그램이 종료될 때 해제되는 변수이며, static 메서드는 객체 생성 없이 호출이 가능한 메서드라고 할 수 있다. 그리고 상태를 가지고 있지 않은 단순히 메서드만 가지고 있는 구조라고 볼 수 있는데, 이러한 이유로 인해 객체지향에 벗어난 개념이 되어 일부 좋지 않은 시선도 있는 편이다. ..

Programming/Java

[Java] VS Code를 활용한 자바 프로그램 디버깅

프로그래밍을 할 때 디버깅은 굉장히 중요하다. 자바 프로그래밍을 하다 보면 오류를 해결해야 할 때가 있는데, 이때 디버깅이라는 기술을 사용하면 오류를 쉽게 찾고 해결할 수 있다. 디버그와 디버깅에 대한 개념을 이해하고 VS Code를 사용하여 자바 프로그램을 디버깅하는 방법에 대해 알아보도록 하자. 💡디버깅 관련 개념 디버그와 디버깅 디버깅(debugging)은 프로그램이 예상대로 작동하지 않거나 오류가 발생했을 때 이를 해결하는 과정을 의미한다. 여기서 디버그(debug)는 버그(bug)를 찾아 잡는 것을 의미하며, 버그란 프로그램이 개발자의 의도와 다르게 동작하거나 예상치 못한 오류로 인해 실행이 중단되는 상황을 가리킨다. 디버깅을 이용하여 이러한 오류를 잡아낼 수 있다. 디버거 디버깅 도구 중 하나..

Programming/Java

[Java] 프로젝트 개발 문서 (javadoc)

자바에서 프로젝트를 진행하면서 산출물 중, 다른 사람들이 코드를 알아보기 위한 도움말, 개발 문서(Documentation)을 만들어야 한다. JDK의 javadoc.exe 기능을 이용해 개발 문서를 만들 수 있다. Project Main Class package com.test.main; //메인 클래스 /* * 다중 주석 */ /** * 메인 클래스 * 프로젝트 메인 역할을 하는 클래스입니다. * @author Isaac */ public class Main { // 메인 메소드 // 프로그램 시작점 /** * 메인 메소드 * 프로그램의 시작을 담당합니다. * @param args 메인 인자 */ public static void main(String[] args) { // 도움말 > Document..

Programming/Java

[Java] 정규 표현식 (Regular Expression)

정규 표현식은 특정한 패턴(규칙)을 가지는 문자열의 집합을 표현하는 식이다. 정규 표현식은 문자열을 검색하는 용도로 사용하며, 대다수 환경/프로그래밍 언어 등에서 지원한다. Ctrl + F 검색 기능에서 Regular expressions를 체크하여 정규 표현식 검색을 할 수 있다. 💡정규 표현식의 구성 요소 x x는 임의의 1개의 문자를 의미한다. 정규 표현식으로 특정 글자 하나를 입력하면 그 패턴과 똑같은 글자를 찾는 작업을 한다. x가 a이면 a를 찾으라는 의미이며, x가 abc이면 abc를 찾으라는 의미이다. 출현 횟수 1. 생략 (아무것도 표현하지 않음) 바로 앞의 대상의 출현 횟수 1 > 생략 X, 중복 X 바로 앞의 대상의 출현 횟수가 1이면 생략이 안 되고, 중복도 안 된다는 뜻이다. ex..

Programming/Java

[Java] OpenAPI (Open Application Programming Interface)

💡OpenAPI OpenAPI는 외부에서 웹 프로토콜(HTTP)로 호출하여 사용할 수 있도록 개방한 API이다. 그래서 OpenAPI는 공개된 프로그래밍 기능이라고 부르며, 모두에게 공개되어 있긴 하지만 무료라는 뜻으로 말하는 Open은 아니다. OpenAPI는 웹 서비스, 라이브러리, 또는 다른 소프트웨어와의 통합에 용이하게 사용할 수 있다. 일반적으로 공공 데이터 포털 등에서 이러한 데이터를 쉽게 받아볼 수 있다. 공공 데이터 포털 1. 공공 데이터 포탈 가입 https://www.data.go.kr/index.do 2. 활용 신청하기 서울특별시_노선정보조회 서비스 https://www.data.go.kr/data/15000193/openapi.do 국토교통부_(TAGO)_지하철정보 https://w..

Programming/Java

[Java] 스트림: 파이프 (Pipe)

💡스트림 스트림은 데이터 소스로부터 데이터를 탐색하고 조작하는 도구로, 컬렉션과 배열 등의 데이터를 더 쉽고 효율적으로 다룰 수 있게 도와준다. 스트림을 사용하면 컬렉션 또는 배열의 요소들을 한 번에 하나씩 처리할 수 있다. 스트림을 이용한 표현으로 list.stream().forEach()와 같이 쓸 수 있는데, 여기서 forEach() 같은 메소드를 파이프(Pipe)라고 부른다. [Java] 스트림 (Stream) 💡쓰기 스트림 FileOutputStream class > FileWriter class > BufferedWriter class 우리가 사용하는 대부분의 스트림은 일방통행이며, 내뱉기만 하는 빨대가 따로 있고, 들이마시는 빨대가 따로 있다. 양방향인 isaac-christian.tisto..

Isaac-Christian
'Programming/Java' 카테고리의 글 목록