250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

기본개념 간단하게 정리 본문

[Snow-ball]프로그래밍(컴퓨터)/프로그래밍 및 컴퓨터 개론 이론

기본개념 간단하게 정리

Snow-ball 2021. 7. 8. 16:58
반응형

자바의 장점

- 객체지향형 프로그래밍 언어, 플랫폼 독립적, 이식성이 좋다. 라이브러리 지향성, 보안성, 멀티스레드, 가상머신, 바이트코드가 장점이다.

 

Java 콜렉션의 대표 인터페이스는 무엇인가?

리스트(List)

- 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.

구현클래스 : ArrayList, LinkedList, Stack, Vector

 

셋(Set)

순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.

구현클래스 : HashSet, TreeSet

 

맵(Map)

키와 값의 쌍으로 이루어진 데이터의 집합으로 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.

 

오버로딩 오버라이딩이란?

오버로딩 : 메소드 이름은 같지만 매개 변수의 개수나 데이터 형식을 다르게 정의하는 것

 

오버라이딩 : 기존에 있는 메소드를 재정의하는 것으로 매개변수의 개수나 데이터 형식이 같아야 한다.

 

프로세스와 쓰레드의 차이점

- 프로세스(process) : 실행 중인 프로그램, 자원(resources)과 쓰레드로 구성

- 쓰레드(thread) : 프로세스 내에서 실제 작업을 수행하는 단위, 모든 프로세스는 하나 이상의 쓰레드를 가지고 있다.

- 다중 쓰레드(multi-threaded process) : 하나의 프로세스(프로그램)에 하나 이상의 쓰레드를 생성하여 실행

 

동기화(synchronized)

- 하나의 자원을 여러 태스크가 사용하려 할 때에, 한 시점에서 하나의 태스크만이 사용할 수 있도록 하는 것

 

커밋(Commit)과 롤백(Rollback)

- Commit : 처리결과의 영구적 반영을 시행한다.

- Rollback : 결과를 취소, 트랜잭션의 처음 시점으로 되돌린다.

 

Get 방식 : GET 가져오기 / 조회 (어떠한 정보를 가져온다) (Select)

어떠한 정보를 서버로 전송할 때 ? 를 붙이고 그 안에 데이터를 기술해서 전송하는 방식

특징 : URL 상에 데이터가 포함되어있다.

게시판이라던지 주소를 공유해야 하는 특성의 것들은 이 방식을 사용하는 것이 좋다.

1. URL에 변수를 포함시켜 요청한다 => 즐겨 찾기 추가가 가능하다.

2. 데이터가 헤더에 포함되어 전달된다.

3. URL에 데이터가 노출이 된다 => 네이버 검색 창에 검색을 하면 상단 URL에 포함된다.

4. 보안에 취약해 로그인 기능을 GET으로 구현하면 ID, PassWord가 그대로 노출된다.

5. 길이 제한이 있다 => 데이터가 255자를 초과하면 데이터가 절단된다.

 

Post 방식 : POST 부치기 / 제출 (어떤정보를 제출한다) (Insert, Update, Delete)

값을 똑같이 전송할 수 있으나 url에 노출되지 않는다.

서버와 클라이언트가 통신할때 사용하는 프로토코 http라는 것을 열어봐야 한다.

1. 데이터가 본문(BODY)에 포함되어 전달되어 (헤더에 인코딩) 서버로 전송된다.)

2. URL에 데이터가 노출되지 않는다 => 즐겨찾기 추가가 불가하다.

3. 데이터의 길이 제한이 없다. 

 

iBatis(요즘 myBatis로 이름을 바꿈) 

iBatis(아이바티스)는 SQL에 기반한 데이터베이스와 자바, 닷넷(.NET), 루비(Ruby) 등을 연결시켜 주는 역할을 하는 영속성 프레임워크이다. 이러한 연결은 프로그램의 소스코드에서 SQL 문장을 분리하여 별도의 XML파일로 저장하고 이 둘을 서로 연결시켜주는 방식으로 작동한다.

 

또 다른 영속성 프레임워크인 하이버네이트(Hibernate)와 비교하여 하이버네이트는 객체모델을 사용자가 생성을 하면 프레임워크에서 데이터베이스와 연겨을 시켜주는 방식인데 반해 iBatis는 사용자가 SQL 문장을 그에적합한 객체모델을 생성하는 방식으로 작동한다.

 

ajax란?

Ajax(Asynchronous JavaScript and XML, 에이잭스)는 대화식 웹 애플리케이션의 제작을 위해 아래와 같은 조합을 이용하는 웹 개발 기법이다.

- 표현 정보를 위한 HTML(또는 XHTML)과 CSS

- 동적인 화면 출력 및 표시 정보와의 상호작용을 위한 DOM, 자바스크립트

- 웹 서버와 비동기적으로 데이터를 교환하고 조작하기 위한 XML, XSLT,XMLHttpRequest (Ajax 애플리케이션은 XML/XSLT 대신 미리 정의된 HTML이나 일반 텍스트, JSON, JSON-RPC를 이용할 수 있다.)

 

DOM이란?

문서 객체 모델(DOM: Document Object Model)은 객체 지향 모델로써 구조화된 문서를 표현하는 형식이다. DOM은 프랫폼/ 언어 중립적으로 구조화된 문서를 표현하는 W3C의 공식 표준이다.

 

DI란?

Dependency Injection의 약자로 의존성을 주입하는 것을 뜻한다.

설정 파일을 통해 객체간의 의존관계를 설정함으로써 외부 Assembler가 객체간의 의존 관계를 정의하게 되며, 객체는 직접 의존하고 있는 객체를 생성하거나 검색할 필요가 없어지므로 코드의 관리가 쉬워진다.

 

AOP란?

Aspect Oriented PRogramming을 뜻하며 다양한 곳에서 자주 사용되는 공통 관심요소를 단일 기능으로 뽑아내어 코드의 중복을 줄이고 관리의 효율성을 높이는 것을 목적으로 한다. 로깅이나 로그인 등의 기능을 예로 들 수 있다.

 

프레임워크(Framework)

정의 : 특정 형태의 소프트웨어 문제를 해결하기 위해 상호 협력하는 클래스프레임과 인터페이스 프레임의 집합

장점 : 개발 시간을 줄일 수 있고 오류로부터 자유로울 수 있다.

단점 : 프레임워크에 너무 의존하면 개발 능력이 떨어져서 프레임워크 없이 개발하는 것이 불가능해지는 점이다.

 

라이브러리(Libray)

라이브러리는 특정 기능에 대한 도구 또는 함수들의 집힙이다. 프로그래머가 어떠한 기능을 수행하기 위헤서 도움을 주는 또는 필요한 것을 제공해주는 역할을 하는 것이다. 간단히 정리를 하자면 프로그램 기능 수행을 위해 활용 가능한 도구의 집합이다.

 

제너릭(Generic)

크래스의 타입을 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미한다.

한마디로 특정(Specific) 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic)타입이라는 것이다.

 

(정확히 말하면 지정된다는 것보다는 타입의 경계를 지정하고, 컴파일 떄 해당 타입으로 캐스팅하여 매개변수화된 유형을 삭제하는 것)

 

인터셉터

- 특정 URI로 요청시 Controller로 가는 요청을 가로채는 역할

 

형상관리(Version Control Revision Control)툴

- 소프트 웨어 버전 관리 툴

- 형상관리는 소스의 변화를 끊임없이 관리하는 것

- 소스를 버전 별로 관리할 수 있어서 개발할 때 실수로 소스를 삭제하거나, 수정하기 이전으로 돌아가야 되는 경우 유용하게 사용되는 툴

- 팀 프로젝트에서도 누가 무엇을 어떻게 수정했는지도 알 수 있기 때문에 코드를 병합하거나 수정된 소스를 추적하는데 쓰인다.

 

자바스크립트에서 가장 기억에 남는함수

filter() : filter()는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다.

 

리스판스(ResponseBody)란?

Java객체를 HTTP 요청의 body 내용으로 매핑하는 역할.

VO 객체를 JSON으로 바꿔서 HTTP body에 담는 스프링 어노테이션이다.

메서드의 return 값을 HTTP Response의 body에 담는 역할을 한다.

 

비동기식, 동기식

동기적 일처리 방식 : 순차적으로 일을 스스로 끝내 나가는 방식

비동기적 일처리 방식 : 해야 할 일을 위임하고 기다리는 방식

 

 

반응형
Comments