본문 바로가기

개발기술/Java

(14)
Exception Handling & Logging 예외처리예외 처리(Exception Handling) 는 프로그램 실행 중에 발생할 수 있는 예외적인 상황을 적절하게 처리하기 위한 프로그래밍 기법입니다.  Exception 종류Throwable├── Error (Not usually caught by applications)│ ├── LinkageError (Errors related to linking problems with classes)│ │ ├── NoClassDefFoundError│ │ └── ExceptionInInitializerError│ ├── VirtualMachineError (Errors produced by the JVM making continuation impossible)│ │ ├── Out..
Java의 메모리 영역과 static의 의미 Java는 실행 중에 프로그램의 데이터를 저장하고 관리하기 위해 JVM(Java Virtual Machine) 내부에서 여러 메모리 영역으로 나누어 관리합니다. 주요 메모리 영역은 다음과 같습니다:1. 메모리 영역의 구성Method Area (메서드 영역):클래스 로더(Class Loader)에 의해 로드된 클래스와 관련된 메타데이터, static 변수, 상수, 메서드 코드, 클래스 정보 등이 저장됩니다.특징:모든 스레드가 공유.클래스 수준의 데이터를 저장하므로, 클래스가 한 번 로드되면 해당 데이터는 프로그램 종료 시까지 유지.Heap (힙 영역):모든 객체와 배열이 저장되는 영역.JVM의 Garbage Collector에 의해 관리되며, 참조되지 않는 객체는 자동으로 제거됩니다.특징:모든 스레드가 공..
Java 코딩구현 심화 - 스트림,람다식 특수 클래스 : 내부클래스내부클래스 : 클래스 in 클래스 (클래스 안에 선언한 클래스)class Outer {class Inner {}}  내부 클래스에서 외부클래스의 유효범위안에 들어가기 때문에 인스턴스 생성없이도(Parameter로써 전달이 되지 않아도) 외부 클래스 인스턴스 멤버에 접근가능하나, 외부에서는 내부 클래스에 접근 불가함. 내부클래스가 외부클래스 '안에서만' 사용되는 클래스이기에, 굳이 바깥에 분리하여 둘필요가 없어 외부클래스의 멤버처럼 내부클래스를 캡슐화를 진행하는 개념이다. ex) Outerclass.Innerclass var = new Outer().new Innter() 원래 클래스에는 default와 public 밖에 사용되지 않는데, 내부클래스는 모든 접근제어자를 사용가능. ..
Java 멀티쓰레드 쓰레드 개념정립 스레드는 어떻게 생성되는가?   자바에서는 모든 것과 마찬가지로 스레드도 객체로 다룬다. 자바는 실행 시점에 `main` 이라는 이름의 스레드를 만들고 프로그램의 시작점인 `main()` 메서드를 실행한다.   스레드를 생성하는 코드는 새로운 스레드 객체를 생성한 후 , 스레드 인스턴스의 start() 메서드를 시작한다. 그러면, JVM이 OS system call을 통해 새로운 스레드를 위한 별도의 스택 공간을 할당한다. 새로운 스레드는 이어서 스레드 인스턴스 내에 정의되어 있는 작업인 `run()` 메서드를 실행하여 정의된 작업을 실행한다. 여기까지가 스레드의 start() 동작이다. main 스레드는 새로운 스레드의 start() 메소드를 동작 완료 후 새로운 스레드의 생성을 기다리..
웹 스크래핑 Jsoup 스크래핑 활용분야  여러 쇼핑몰의 데이터를 스크래핑해서 쇼핑몰간의 가격비교사이트, 특정 카테고리에 해당하는 아이템 모아서 한번에 보여주는 사이트, 여러회사의 취업공고를 모아서 보여주는 사이트, 업무 자동화, 핀테크 회사에서 사용자대신 공공데이터를 스크래핑 후 서류제출과정 대신하여 간편화, 무궁무진한 활용가능함 스크래핑 정책  main페이지의 robot.txt(https://finance.yahoo.com/robots.txt)을 조회하면 해당 사이트의 스크래핑 정책을 확인할 수 있다. 스크래핑을 허용한다고하여도 해당 사이트에 부하가 걸리지 않는 정도에서 운영하여야한다.  스크래핑  Jsoup library는 beautiful Soup의 java버전으로 해당 라이브러리를 사용한다.개발자는 자신의 서비스가 의..
Java Dependency - Marven, Gradle, exteral libraries(Lombok etc) DependencyAdding a dependency refers to including external libraries or modules that your project requires to function correctly. In the context of Java projects, dependencies are often managed using build tools like Maven or Gradle. These tools help automate the process of downloading, configuring, and managing the libraries your project needs.Maven is a build automation tool used primarily for..
Java의 이해 ; JDK, JVM, JAVA 명령어 Java의 특징"Programmers Write Once, Run Anywhere(WORA)" 이는, JVM이라는 Java 가상머신 위에서 동작하기 때문에 가능하다. 가상머신이란 프로그램의 실행하기 위해 물리적 머신과 유사한 머신을 소프트웨어로 구현한 것임. JVM의 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행하는 것. JVM은 JAVA와 OS사이에서 중개자 역할을 수행. JAVA가 OS에 구애받지 않고 재사용을 가능하도록 함. 메모리관리, Garbage collection을 수행함.  Java의 장점- 간결한 객체지향 언어- Garbage Collection을 통한 메모리 관리- 플랫폼에 종속적이지 않고, 한번 컴파일 된 프로그램은 어느 운영체제나 환경에서 동일하게..
Java 코딩구현 - Java I/O Java I/OJava IO (Input/Output) is the set of APIs that lets your program read from and write to data sources likeData SourceJava I/O API Used📁 FilesFile, FileReader, FileWriter, InputStream, OutputStream, Files, Path, FileChannel🔌 NetworkSocket, ServerSocket (java.io) → SocketChannel, Selector (java.nio)⌨️ Keyboard / ConsoleSystem.in, System.out, Console🧠 Memory (Buffers)ByteArrayInputStream,..