전체 글(78)
-
Java IO(입출력)
자바 IO는 파일에서 데이터를 읽고 쓰기, 네트워크를 통한 데이터 전송, 사용자 입력 처 리 등 다양한 방법으로 사용 InputStream, OutputStream, Reader, Writer 1. byte단위 입출력 Stream byte단위 입출력 스트림은 데이터를 바이트 단위로 읽고 쓰는 기능을 제공한다. byte단위 입출력 스트림은 주로 이진 데이터를 다룰 때 사용된다. 이진 데이터란 텍스 트가 아닌 파일이나 네트워크 데이터 같은 것을 말합니다. 예를 들어, 이미지, 오디오 파 일, 비디오 파일 등이 이진 데이터에 해당한다. 1-1 InputStream (1). FileInputStream: 파일로부터 바이트 단위로 데이터를 읽는 데 사용됩니다. 이 클래 스는 파일 시스템에 저장된 데이터를 읽는 기..
2024.04.22 -
내부 클래스
자바에서 클래스 내부에 또 다른 클래스를 정의하는 개념 - 외부 클래스의 멤버처럼 취급 - 특별한 접근 권한과 기능을 가짐 - 내부 클래스는 주로 외부 클래스와 긴밀하게 관련된 작업을 수행하기 위해 사용 1. 접근성과 은닉성 - 외부 클래스의 필드와 메소드에 직접적으로 접근할 수 있음 - 외부 클래스의 private 멤버들에도 접근이 가능하다는 것을 의미 - 외부에서는 내부 클래스의 private 멤버에 접근할 수 없어 은닉성을 제공 2. 코드의 조직화 - 관련된 기능을 같은 외부 클래스 안에 묶어두면, 코드를 더 잘 조직화하고 관리 할 수 있음 - 코드의 가독성과 유지보수성을 향상시킴 3. 종류 - 멤버 내부 클래스, 로컬 내부 클래스, 익명 내부 클래스, 정적 내부 클래스 4. 특정 상황에 적합 - ..
2024.04.16 -
예외처리(Exception)
- 프로그램 실행 중에 발생할 수 있는 예상치 못 한 상황(예외)에 대비하여 프로그램의 정상적인 흐름을 유지하고 예외 상황을 안전 하게 처리하는 프로그래밍 기법 - 에외처리가 없으면 프로그램이 비정상적으로 종료된다. 기본 구조 자바에서 예외 처리는 주로 try-catch-finally 블록을 사용하여 구현됩니다. try 블록: 예외가 발생할 수 있는 코드를 포함합니다. catch 블록: try 블록에서 발생한 예외를 처리합니다. finally 블록 (선택적): 예외 발생 여부와 관계없이 실행되는 코드를 포함합니 다. public class Main { public static void main(String[] args) { try { int result = 10 / 0; // 예외 발생 가능 코드 } c..
2024.04.16 -
인터페이스(Interface)
- 서로 관계가 없는 물체들이 상호 작용을 하기 위해서 사용되는 장치나 시스템 - 클래스 구조상의 관계와 상관없이 클래스들에 구현되어질 수 있는 규약 - 즉, 클래스들 사이의 유사한 특성을 부자연스러운 상속 관계를 설정하지 않고 얻어냄 언제 사용할까? - 하나 또는 그 이상의 클래스들에서 똑같이 구현되어질 법한 메소드를 선언하는 경우 - 클래스 자체를 드러내지 않고 객체의 프로그래밍 인터페이스를 제공하는 경우 인터페이스의 상속 - 인터페이스는 다중상속을 지원하지 않는 자바에서 다중 상속의 장점을 활용하기 위해 도입 - 한 클래스는 하나의 부모클래스를 가지며 하나 이상의 인터페이스를 구현할 수 있음 - 인터페이스 사이에서는 다중 상속이 가능함 - 인터페이스는 interface 키워드로 선언하고 imple..
2024.04.16 -
추상 클래스
추상 클래스 - abstract 키워드로 사용 - 확장만을 위한 용도로 정의되는 클래스 - 일반 메소드를 가질 수 있음 - 객체화 할 수 없음 추상 메소드 - 메소드에 대한 구현을 갖지 않음 - 추상 클래스의 자식 클래스가 해당 메소드를 구현하도록 강요하기 위함 - 추상 메소드는 추상 클래스 안에만 존재 가능 //추상 클래스 abstract public class Shape implements Drawable { //추상 메소드 public abstract double calculateArea(); } public class Triangle extends Shape implements Drawable{ private double base; private double height; public Trian..
2024.04.16 -
[JavaScript] 비동기 처리(Promise)
비동기 작업을 조금 더 편하게 처리 할 수 있도록 도입된 기능이다. 콜백 함수로 처리를 하게 된다면 비동기 작업이 많아진 경우 코드가 난잡해진다. 숫자 n을 파라미터로 받아와서 다섯번에 걸쳐 1초마다 1씩 더해서 출력하는 작업을 setTimeout으로 구현하면 다음과 같다. function increaseAndPrint(n, callback) { setTimeout(() => { const increased = n + 1; console.log(increased); if (callback) { callback(increased); } }, 1000); } increaseAndPrint(0, n => { increaseAndPrint(n, n => { increaseAndPrint(n, n => { inc..
2024.04.04