본문 바로가기

Language

(14)
[JavaScript] var , let , const 차이점 1. var var score = 100; console.log(score) // 100 var score = 200; console.log(score) // 200 var score = 300; console.log(score) //300 var는 중복선언이 가능하다. 같은 변수명을 선언하여 사용하여도 에러가 나지 않는 것을 볼 수 있다. 이는 유연한 변수 선언이 가능해 편리하다고 생각할 수도 있겠지만 중복선언의 위험으로 예상치 못한 값을 반환 할 수 있기때문에 단점으로 여겨진다. ES5 이후 이를 보완하기 위해 let 과 const가 추가되었다. 2. let let score = 100; console.log(score); //100 let score = 200; console.log(score); ..
[Java] 재네릭(Generic)이란? 재네릭(Generic) 재네릭은 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄일 수 있다. 타입 안정성을 높인다는 것은 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환되어 발생할 수 있는 오류를 줄여준다는 뜻이다. 재네릭의 장점 1. 타입 안정성을 제공한다. 2. 타입체크와 형변환을 생략할 수 있어 코드가 간결해 진다. 재네릭 이전의 코드 재네릭 이전의 코드에 대해서 살펴보자. 먼저 무엇이든 저장하고 꺼낼 수 있는 상자를 준비해 준다. class Apple{ public String toStri..
[JavaScript] 동기 비동기 개념 및 Ajax 사용법 1. 동기와 비동기 개념 동기(Synchronous) 동기는 데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것을 말한다.요청을 하면 시간이 얼마가 걸리던 요청한 자리에서 결과가 주어져야 한다. -> 요청과 결과가 한 자리에서 동시에 일어남. -> A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞추겠다. 비동기(Asynchronous) 비동기는 요쳥한 결과가 동시에 일어나지 않는 것을 말한다. -> 요청한 그 자리에서 결과가 주어지지 않음. -> 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다. 2. 동기와 비동기의 장단점 동기 장점: 설계가 매우 간단하고 직관적이다. 단점: 결과가 주어질 때까지 아무것도 못하고 대기해야 한다. 비동기 장점: 결과가 주어지는데 시간이..
[Java] 객체지향프로그래밍(OOP)란? OOP(Object Oriented Programming) 이란? 문제를 여러 개의 객체 단위로 나눠 작업하는 방식으로, 객체들이 서로 유기적으로 상호작용하는 프로그래밍 이론이다. OOP는 코드의 재사용성을 증가시키고, 생산성을 향상시키다는 장점이 있다. OOP의 특성은 크게 캡슐화(encapsulation), 상속(inheritance), 다형성(polymorphism), 추상화(abstraction) 로 나뉜다. 1.캡슐화(Encapsulation) 캡슐화는 관련 있는 변수와 함수들을 하나의 클래스로 묶고 외부에서 쉽게 접근하지 못하도록 정보를 은닉하는 것이다.. 객채에 직접적인 접근을 막고 외부에서 내부의 정보를 변경할 수 없고 객체가 제공하는 필드와 메소드를 통해서만 접근이 가능하다. 정보은닉을 ..
[Java] 형변환(캐스팅, casting) 형변환이란? 모든 변수와 리터럴에는 타입이 있다. 프로그램을 작성하다 보면 서로 다른 타입간의 연산을 수행해야하는 경우가 있는데 이럴 때 연산을 수행하기 전에 타입을 일치시켜야 하는데, 변수나 리터럴 타입을 변환시키는 것을 형변환이라고 한다. 변수 또는 상수의 타입을 다른 타입으로 변환하는 것 형변환 방법 형변환 방법은 간단하다. 형변환하고자 하는 변수나 리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙여기주만 하면된다. 이때 사용되는 괄호()는 "캐스트 연산자" 또는 "형변환 연산자" 라고 하며 형변환을 "캐스팅" 이라고도 한다. 예를 들어 다음과 같은 코드가 있다. double d = 90.5; int score = (int)d; //double형 타입의 변수 d를 int타입으로 형변환 위의 결과..
[Java] 자바의 명명규칙 공통 명명 규칙 1. 대소문자가 구분되어 길이에 제한이 없다. -True 와 true 는 서로 다른 것으로 간주된다. 2. 예약어를 사용해서는 안 된다. - true 는 예약어라서 사용할 수 없지만 True는 가능하다. 3. 숫자로 시작해서는 안 된다. -top10은 허용하지만, 7up은 허용되지 않는다. 4. 특수문자는 '-' 와 '$' 만을 허용한다. -$harp은 허용되지만, $#arp은 허용되지 않는다. 패키지 이름 패키지명은 소문자 사용을 권장한다. 가급적 한 단어 사용을 권장한다. 표준 패턴: com.회사이름(혹은 개인이름).프로젝트명.상위패키지.하위패키지.클래스 com.java.example 클래스 이름 파스칼 표기법을 따르며 클래스 이름의 첫 글자는 항상 대문자로 한다. 여러 단어로 이루어..
[Java] JVM 메모리 구조 JVM이란? JVM은 "Java Virtual Machine"을 줄인 것으로 "자바를 실행하기 위한 가상 기계"라고 할 수 있으며 자바 가상 머신이라고 부른다. 그리고 자바와 운영체제 사이에서 중개자 역할을 수행하며 자바가 운영채제에 구애 받지 않고 프로그램을 실행할 수 있도록 도와준다. 자바 프로그램 실행 단계 그렇다면 이제는 JVM이 어떻게 동작하는지와 구조에 대해 알아보자. JVM의 구조는 크게 Class Loader, Exceution Engine, Runntume Data Area, Garbage Collector로 4가지로 나눌 수 있다. 밑에 그림은 JVM의 메모리 구조이다. JVM의 메모리 구조 Class Loader JVM 내로 클래스 파일을 로드하고, 링크를 통해 배치하는 작업을 수행하..
[Java] Queue(큐) 클래스 정리 큐(Stack) 란? 큐는 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In First Out)구조로 되어 있다. 쉽게 말해 큐는 양 옆만 막혀 있고 위아래로 뚫려 있어서 한 방향으로는 넣고 한 방향으로는 빼는 파이프와 같은 구조로 되어 있다. add(): 큐(Queue)에 데이터를 넣는다. offer(): 큐(Queue)에 데이터를 저장한다, 성공하면 true, 실패하면 false를 반환한다. poll() : 큐(Queue)에 첫번째 데이터를 꺼내서 반환하고 제거한다. 비어있으면 null을 반환한다. remove(): 큐(Queue)에 첫번째 데이터를 제거한다. peek(): 삭제없이 첫번째 요소를 읽어온다. 비어있으면 null을 반환한다. 큐(Stack) 구현 1) 큐(Queue..