이끌든지 따르든지 비키든지

Software Development 25

[JavaScript] 자바스크립트의 비동기 처리

비동기(Asynchronous) 처리 자바스크립트는 단일 스레드 기반의 언어로, 한 번에 하나의 작업만 처리할 수 있다. 그러나 비동기 처리 방식을 사용해 코드를 순차적으로 실행하되, 실행 결과를 기다리지 않고 다음 코드를 실행한다. 그래서, 우리가 보기에 여러 작업이 동시에 실행되는 것처럼 보인다. 비동기 처리는 코드를 순차적으로 실행하지만, 실행 결과를 기다리지 않고 다음 코드를 실행한다. 이 때문에, 작업이 실행 중일 때 다른 작업을 수행할 수 있으며, 사용자의 요청에 빠르게 응답할 수 있다. 자바스크립트의 비동기 처리를 확인할 수 있는 간단한 예시를 보자면, console.log("Hello"); setTimeout(function() { // 1초 뒤에 실행 console.log("Dev"); ..

[JavaScript] const의 불변성

자바스크립트에서 const는 상수, 즉 불변형 변수를 선언할 때 사용한다. 자바의 final과 같은 역할을 하는 키워드인 셈인데, const로 선언된 객체를 Java에서 final로 선언된 객체와 같이 Read-Only라고 생각할 수 있지만, const로 선언된 객체의 속성은 변경할 수 있다. 그럼 Read-Only가 아니라는 건가? 예시 코드를 통해 알아보자면, const person = { name: 'John', age: 30 }; person.age = 31; console.log(person); // 출력: { name: 'John', age: 31 } 위 코드처럼, person의 속성인 age는 변경이 가능하다. const person = { name: 'John', age: 30 }; per..

[JAVA] 객체지향과 자바

객체 지향 프로그래밍(Object Oriented Programming)이란 현실 세계의 객체(Object)를 모델링하고 이러한 객체들 간의 상호 작용을 통해 소프트웨어를 개발하는 방법론을 말한다. 객체 지향 프로그래밍에는 크게 4가지 특징과 5가지 원칙(SOLID 원칙)이 있는데, 이 중 특징과 이에 대한 Java에서의 구현에 대해 알아본다. 캡슐화(Encapsulation) 캡슐화란, 서로 관련 있는 정보나 데이터, 이를 처리하기 위한 기능을 한 곳에 모아 관리하고, 필요한 부분만을 외부로 노출하는 것을 말한다. 캡슐에 담긴 데이터에 대한 직접적인 접근은 허용하지 않고, 대신 이를 확인하거나, 수정할 수 있는 인터페이스를 구현해 이를 통해서만, 데이터에 접근할 수 있도록 하는 정보 은닉이 캡슐화의 핵..

[JAVA] 메소드 오버로딩 & 오버라이딩

JAVA에서는 객체지향 프로그래밍의 특징 중 하나인 다형성(Polymorphism)을 구현하기 위해 메소드 오버라이딩, 메소드 오버로딩 2가지 방식을 사용한다. 두 단어가 비슷하고 부모 클래스로부터 상속 받은 메소드를 사용한다는 점이 같아 헷갈려하는 사람이 많다. 두 방식의 개념을 1줄로 요약하자면.. 메소드 오버로딩 - 새로운 메소드를 정의하는 것 메소드 오버라이딩 - 기존에 있던 메소드 재정의하는 것 메소드 오버로딩(Method Overloading) 모든 접근 제어자(public, private, protected ···)를 사용할 수 있다. 메소드명을 변경할 수 없다. 리턴 타입이 달라도 된다. 매개변수(파라미터)가 달라야 한다. 같은 클래스 내에서만 적용할 수 있다. class Calculato..

[JavaScript] 자바스크립트의 이해

JavaScript는 초창기에는 웹 페이지 내에서 동적 표현을 담당했지만, 최근 Node.js라는 자바스크립트 런타임이 등장하며, 프론트엔드는 물론 백엔드 영역까지 아우르는 웹 프로그래밍 언어의 표준으로 자리를 잡고 있다. 자바스크립트의 특징 1. 동적 & 약타입 언어 자바스크립트는 실행 시 데이터 타입을 결정하는 동적 언어이면서, 다른 데이터 타입간에 형 변환이 상대적으로 자유로운 약 타입 언어이다. 문법도 타 언어에 비해 비교적 간단하고, 유연하게 코드를 작성할 수 있어 코드 작성 효율이 높다. // 정적 & 강 타입 언어인 Java int num1 = 10; String str = "Hello"; int result = num1 + str; // 결과 : 컴파일 에러 // 동적 & 약 타입 언어인 ..