반응형

1. Spring이란?

자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크

종속 객체를 생성해주고 조립해주는 도구 

  • 특징
    • 경량 컨테이너로 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하여 스프링으로 부터 필요한 객체 얻어 옴
    • POJO (Plain Old Java Object) 방식 프레임워크
      • 특정 인터페이스를 구현하거나 상속받을 필요 없어, 기존에 존재하는 라이브러리 등을 지원해, 용이하고 가벼움
    • 제어 역행(IOC) 기술 사용해 애플리케이션의 느슨한 결합 도모 
      • 컨드롤의 제어권이 프레임워크에 있어, 필요에 따라 스프링에 사용자의 코드 호출
    • 관점 지향 프로그래밍(AOP) 위한 풍부한 지원
      • 트랜잭션, 로깅, 보안 과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 , 따로 분리하여 관리할 수 있음
    • 의존성 주입(DI) 지원
      • 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크 서로 연결
    • 확장성이 높음

2. 스프링에서 공통 부분 관리

  • Filter  : 요청, 응답 거른 뒤 정제 / 스프링 컨텍스트 외부에 존재, 스프링과 무관한 자원에 동작
  • Interceptor  : 스프링의 DistpatcherServlet 이 컨트롤러를 호출하기 전, 후 끼어듬
                               스프링컨텍스트내부에서 Controller 요청, 응답 처리 
                               여러 개 사용 가능 
  • AOP : 로깅, 트랜잭션, 에러 처리 등 메서드 에서 조금 더 세밀하게 조정 

 

3. MVC 패턴(MODEL, VIEW, CONTROLLER)

model1 : 구분 필요없는 내용 / 주먹구구식, 작은 프로그램

model2 : 내용, 형식에 따라서 파일을 분류해서 프로그래밍 (MVC) /여러명이 작업

 

MODEL

  • 논리적 데이터 기반 구조 표현
  • 데이터와 관련된 저장, 가공
  • 데이터베이스, 처음 정의하는 상수, 초기값, 변수 
  • 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 함
  • 뷰, 컨트롤러에 대해 어떤 정보도 알지 말아야 한다
  • 변경 일어나면, 변경 통지에 대한 처리 방법을 구현

VIEW

  • 사용자에게 보여지는 화면 
  • 컨트롤러에 값을 받고 화면에 보여줌 
  • 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
  • 모델이나 컨트롤러 같이 다른 구성 요소들을 몰라야한다
  • 변경이 일어나면 변경통지에 대한 처리 방법 구현

Controller

  • model, view 내의 클래스들 간 정보 교환
  • model, view를 가지고 있어 값을 처리하고 화면에 보여주는 것 
  • 데이터와 사용자인터페이스 요소들을 잇는 다리 역할
  • 모델, 뷰에 대해 알고 있어야 한다.
  • 모델, 뷰 변경 모니터링

서로 분리하여 각자의 역할에 집중하게 개발하고 유지 보수성, 애플리케이션 확장성, 유연성이 증가하고 , 중복코딩 또한 사라진다

 

4. 장고 VS 스프링

장고 

  • PYTHON + MVC 패턴 + 관습 지향 + ORM + 라이브러리 => 완전 고수준 프레임워크
  • 스크립트 언어 사용하기에 디버깅이 굉장히 수훨 
  • 동시요청 처리능력은 좋지 않음
  • 주요 기능
    • MVC 패턴 기반 MVT
    • ORM(Object relational mapping)

스프링

  • JAVA Servlet + MVC 패턴 + DI, AOP + 라이브러리
  • 아파치 + 톰캣 + 스프링 + MYSQL 조합
  • 컴파일 언어 이기에 배포가 까다로움
  • 주요 기능
  • DI (Dependency Injection) : 의존 관계 주입
    •  각각의 계층이나 서비스 간에 의존성이 존재할 경우 Spring이 서로 연결시켜 준다.
  • AOP (Aspect Orientated Programming) : 관점 중심 프로그래밍
    •  여러 곳에서 공통적으로 쓰이는 기능들을 분리하여 개발하고 실행 시에 서로 조합할 수 있는 AOP를 지원한다.
반응형
반응형

<알고리즘>

1. array,  linked list

배열 : 데이터를 물리적 주소에 순차적으로 저장, 인덱스를 가지고 있으며 특정 데이터에 바로 접근할 수 있어 속도가 빠르다

연결리스트 : 데이터를 저장할 때 데이터 + 다음 데이터 물리적 주소까지 같이 저장  / 첫 노드 부터 원하는 노드까지 링크를 따라가야 접근 가능하기에 접근 속도는 떨어짐 

 

  • 속도 : 데이터에 대한 접근 속도 (배열 > 연결리스트)
    • 배열 : index 만 있으면 O(1) 접근
    • 연결리스트 : 최소 한 번은 리스트를 순회하여야 하므로, O(n)에 접근
  • 데이터 삽입 속도 : 경우에 따라 다르지만(전체적으로 배열 < 연결리스트)
    • 배열에 공간이 많이 남아있고 맨 끝에 삽입 한다면 O(1)이 가능하지만 매우 드뭄
      • 배열은 중간, 맨 앞에 삽입 할 경우 데이터를 한 칸씩 미뤄야 하고
      • 데이터 삽입 시 모든 공간이 다 차버렸다면, realloc() 또는 새로이 할당하여 메모리 공간 확장 필요
    • 연결리스트 : 어느 곳에 삽입하던지 O(n) 시간 접근 
  • 데이터 삭제 속도 : 경우에 따라 다르지만(전체적으로 배열 < 연결리스트)
    • 위와 비슷하다
    • 연결리스트의 경우 예외 조건 처리를 꼼꼼히 필요로 함 
  • 삽입 삭제가 빈번하다면 연결리스트의 , 이미 만들어진 구조에서 데이터 접근만 필요로 하면 배열

2. 버블 정렬

서로 인접한 두 원소를 검사하여 정렬하는 알고리즘(인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환)

  • 특징 
    • 장점 : 구현이 매우 간단
    • 단점 : 순서에 맞지 않은 요소를 인접한 요소와 교환 / 배열에서 모든 요소들과 교환해야 왼쪽 -> 오른쪽으로 이동 가능

3. 퀵 정렬

  • 리스트 안에 있는 한 요소(피벗) 를 가지고 이를 기준으로 삼아 분할하고 분할된 부분 리스트 정렬 후 
    두 개의 정렬된 부분 리스트를 합하여 전체 리스트 한다
  • 분할-> 정복 -> 결합 

4. 힙 정렬

  • 완전 이진 트리 이용해 내림차순 기준으로 정렬

5. 합병 정렬

  • 하나의 리스트를 두 개의 균등한 크기로 분할하고 분할된 부분 리스트를 정렬 , 두 개의 정렬된 부분 리스트를 합하여 전체가 정렬된 리스트가 되게 하는 방법 
  • 분할 -> 정복 -> 결합

정렬 알고리즘 시간복잡도 비교 

6. ArrayList<>란

 : 배열의 확장판. 배열의 크기를 임의적으로 변화시킬 수 있음, list에 들어갈 데이터 타입 설정 가능

    (add, remove, isEmpty, size, get, indexOf 등의 메소드가 있음)

 

7. hash란?

 : 내부적으로 배열을 사용(HashTable)하여 데이터를 저장, 검색 속도가 빠름.

 데이터 삽입/삭제시 기존 데이터를 밀어내거나 채우지 않고, 데이터와 연관된 고유한 숫자를 생성해 이를 인덱스로 사용.

 

8. equals와 HashCode?

(equals) 동일한 내용을 가진 객체인지를 비교

(hashcode) 동일한 객체인지 구별하기 위해 고유한 정수 값으로 출력

 

9. 스택과 큐의 차이

: (stack) Last in First out

   -> 함수를 호출 할 때, 현재 함수에서 사용되는 값을 스택에 넣고, 작업이 끝나면 함수를 리턴하고 스택에 넣었던

       값을 꺼내는 방식으로 동작

 (Queue) First in First out 

   ->프로세스 처리, CPU 관리, 프린터 큐 등에 사용

반응형
반응형

<자바 문법 및 특징>

1. 자바 특징

현실 세계의 객체를 필드와 메서드로 정의한 Class 기반으로 실제 메모리가 잡혀 만들어진 부품과 같은 객체들을 조합해

전체 프로그램을 완성해 나가는 개발 기법

  • oop : 객체 지향 언어 
  • 가비지 컬렉션에 의해 메모리 자동 관리
    • 시스템에서 더이상 사용하지 않는 동적 할당된 메모리 블럭을 찾아 자동으로 다시 사용 가능한 자원 회수하는 것
    • 시스템에서 가비지컬렉션을 수행하는 부분 : 가비지 컬렉터
  • 멀티 쓰레드 지원
  • JVM 위에서 동작하기 때문에 특정 OS에 종속적이지 않고 이식성이 좋으며 보안성이 좋다
  • 다양한 오픈 라이브러리들이 존재한
  • 추상화 :  객체의 공통적인 특징을 속성을 변수로 / 공통된 기능을 메소드로 만듬/일반메서드사용
    • 추상 메서드 : 메서드의 정의부만 있고, 구현부는 있지 않는 메서드
    • 추상 클래스 : 추상 메서드를 적어도 하나 이상 가지고 있는 클래스로 자식 클래스에서 오버라이딩(재정의)
                               필요한 추상메서드를 가지고 있기 때문에 객체화 할 수 없다.
  • 캡슐화 , 은닉화 : 외부 객체에서 구현 방식 알 수 없도록 숨기고 별도로 접근할 수 있는 getter/setter 메서드를 통해 접근하는 방식
  • 상속 : 부모 class를 자식이 접근할 수 있도록 물려 받는 방식
    • 변수와 메소드를 그대로 쓰므로 코드 중복을 줄이고
    • 객체 사용하는 클래스의 외부 관점으로 봤을 때, 묶어서 처리(upcasting)할 수 있으므로 효율적인 코드
  • 다형성 : 부모 class 타입으로 해당 부모를 상속받는 여러 자식 class를 대입하는 성질 
                  : 서로 다른 class로 부터 만들어진 객체이지만 같은 부모 class 타입으로 대입할 수 있는 성질
    • 오버로딩
      • 하나의 클래스 내에 이름이 같은 여러 개의 메서드 정의
      • parameter, return 타입 등이 다른데, 수행 내용이 본질적으로 동일 할 때 사용
    • 오버라이딩
      • 부모 클래스의 메소드를 자식 클래스에서 재정의

2. 객체와 클래스의 차이점

  • 클래스 : 현실 세계의 객체 속성과 동작을 추려내 필드와 메서드로 정의한 것 "아직 메모리가 할당되지 않은 상태"
  • 객체 : 클래스라는 설계도를 기반으로 실제 메모리가 잡힌 것을 의미,
                이런 객체를 조합해 전체 프로그램을 완성해나가는 방식 OOP

3. Servlet , JSP

  • Servlet : Container 가 이해할 수 있게 구성된 순수 자바 코드로만 이루어진 것(html in java)
  • jsp : html 기반에 java코드를 블록화하여 삽입 (java in html)

4. GET, POST

  • GET : 웹 브라우저가 웹 서버에 데이터를 요청할 때 사용 
    • 보안성이 떨어지고 , 길이 제한이 있다
    • POST 보다 상대적으로 전송 속도가 post보다 빠름
    • 웹 브라우저에서 웹 서버로 전달되는 데이터가 인코딩 되어 URL에 붙는다
  • POST : 웹 브라우저가 웹 서버에 데이터를 전달하기 위해 사용
    • HTTP 메시지로 넘어온 엔티티를 새로운 자원으로 등록 : 201 response
    • 보안성이 높고, 속도가 get 보다 느리다
    • 객체들의 값도 전송 가능 
    • PUT(식별자 포함하여 웹 서버에 데이터를 전달)과는 비슷하게 작동

5. Call by reference , Call by value

  • Call by reference : 매개 변수가 원래 주소에 값을 저장
  • Call by value : 주어진 값을 복사하여 처리 

6. interface?

모든 메서드가 구현부가 없는 추상메서드, abstract 키워드 붙이지 않아도 자동으로 모든 메서드는 추상 메서드로 정의

  • 인터페이스는 추상화와 다르게 메서드 선언만 가능
  • 변수도 자동으로 final static 키워드가 붙는다. 

7. 접근제한자

  • public(접근 제한자가 없다/ 같은 프로젝트 내 어디서든 사용 가능 )
  • protected(같은 패키지 내, 다른 패키지에서 상속받아 자손 클래스에서 접근)
  • default (같은 패키지 내에서만 접근 가능)
  • private (같은 클래스내에서만 접근 가능)

8. 소켓 통신 (tcp/udp)

  • tcp (transmission control protocol)
    • 연결형 서비스 제공
    • 높은 신뢰성 보장
    • 데이터 흐름 , 호잡 제어
    • 3,4 -way handshaking(데이터 수신 여부 확인)
    • 전이중, 점대점 서비스
  • udp (user datagram protocol)
    • 비연결형 서비스 제공
    • 신뢰성 낮음
    • 데이터 전송 순서 바뀜
    • 데이터 수신 여부 확인 과정 없음
    • tcp 보다 전송 속도가 빠름

9. Primitive type , Reference type

  • Primitive type : 변수에 값 자체 저장
    • 정수 / 실수 / 문자 / 논리형
    • wrapper class (간단한 데이터를 객체로 만들어야 할 경우)를
      통해 객체로 변형 가능 (int, char 제외하고 다른 자료형들은 맨 앞 알파벳을 대문자로 바꿔준다)
  • Reference type : 메모리상에 객체가 있는 위치 저장
    • class , interface , array

10. 세션, 쿠키 사용 

  • Session : 웹 브라우저의 캐시에 저장(서버에 저장)되어 브라우저가 닫히거나 서버에 삭제 시 사라진다
                      쿠키에 비해 보안성이 좋다
  • Cookie : http 한계를 극복 / 인터넷 웹 사이트의 방문 기록을 남겨 사용자와 웹 사이트를 매개 
                               아이디 , 비밀번호 / Client PC에 저장, 다른 사용자에 의해 임의 변경 가능 
  • 쿠키 대신 세션 사용하면 되는데 안하는 이유?
     -> 세션에 저장하면 서버의 메모리가 과도하게 사용되어 서버에 무리가 감

11. 해쉬, 암호화

  • 해쉬 : 단방향 암호화 / 복호화 불가능 / 데이터 보안에 중점
  • 암호화 : 양방향 암호화 / 복호화 가능 / 통신 보안 중점
    • Symmetric key (비밀키 : des / aes) / Asymmetric key(공개키 : dsa , rsa) 

12. HTTP (Hyper Text Transfer Protocol)

  • 웹브라우저와 웹서버가 서로 데이터를 주고 받을 때, 사용하는 규약
  • 도메인 + URL(자원 위치) , 도메인 + URI(자원 식별자) 통해 요청, 서버가 요청에 따른 응답(.html) 해줌
  • 특징
    • Connectless + stateless : 클라이언트 이전 상태 알 수 없으므로(쿠키와 세션 필요)
    • keep-alive : 지정된 시간 동안 연결 끊지 않고 연결된 상태 유지
      웹 서버 연결 -> html 문서 다운로드 -> 필요한 img , js, css 다운 -> 연결 끊음
  • http method 
    • GET : 정보를 요청하기 위해 사용 (READ)
    • POST : 정보를 입력하기 위해 사용(CREATE)
    • PUT : 정보를 업데이트 하기 위해 사용 (UPDATE)
    • DELETE : 정보를 삭제하기 위해 사용 (DELETE)
  • Request Header : 웹 브라우저가 웹 서버에 요청할 때 작성
    • 유저가 서버 측에 요청한 정보
  • Response Header : 웹 서버가 작성해서 웹 브라우저에 응답할 때 작성
    • 유저의 요청(request)에 서버 측의 응답(response)정보
  • https : http는 데이터 key와 , value 가 모두 표시되기 때문에 중요한 데이터 일 때 감춰야 함(HTTPS) 

13. REST API 

  • 서버에 리퀘스트 할 때, 자원의 ID와 자원에 대한 처리(HTTP 메소드)를 포함하여 리퀘스트 되도록 하는 것
  • 고유 자원에 대한 처리 URI로 나타낸 것
  • 라우터 상에서 HTTP 메소드 (GET, POST, PUT, DELEE) 와 실제 자원에 대한 처리 (CRUD)를 맵핑 시켜야함
  • HTTP method + 모든 개체 리소스화
    + URL 디자인(라우팅 :
    클라이언트 요청에 대한 응답을 어떻게 이어줄 것인가 처리 / 자원에 대한 처리를 주소에 나타내지 않는다. )

14. 아파치, 아파치 톰캣

  • 아파치 : HTTP 웹 서버(클라이언트의 요청을 기다리고 요청에 대한 데이터(정적 데이터)를 만들어서 응답하는 역할)
  • 톰캣 : WAS(Web Application Server/ 서블릿 컨테이너) : 웹 서버와 웹 컨테이너 결합
    • 다양한 기능을 컨테이너에 구현하여 다양한 역할을 수행
    • 웹 컨테이너 : 클라이언트의 요청이 있을 때, 내부 프로그램을 통해 결과를 만들어내고 이것을 다시 클라이언트에게 돌려줌
      • JSP, 서블릿 처리 / 서블릿 수명 주기 관리 / 요청 URL을 서블릿 코드로 매핑 / HTTP 요청 수신 및 응답 / 필터 체인
  • 둘의 차이 : 웹 서버와 웹 어플리케이션 차이-> 단순 정적 데이터 (이미지나 단순 HTML)를 처리하는 서버라면 아파치 
    -> 동적 데이터 (DB 연결, 데이터 조작) 등 과 같은 처리 는 WAS

15. 동기, 비동기 

  • 동기 (synchronous) 
    • 요청과 그 결과가 한 자리에서 동시에 일어남
    • A노드와 B 노드 사이의 작업 처리 단위(transcation)을 동시에 맞추겠다
    • 장점 : 설계가 매우 간단, 직관적 / 단점 : 결과가 주어질 때 까지 아무것도 못하고 대기해야한다.
  • 비동기 (asynchronous)
    • 요청한 그 자리에서 결과가 주어지지 않음
    • 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다.
    • 장점 : 결과가 주어지는 데 시간이 걸리더라도 그 시간 동안 다른 작업할 수 있으므로 자원을 효율적으로 사용
      단점 : 동기보다 복잡

16. 쓰레드 , 프로세스

  • Process : 운영체제에서 실행 중인 하나의 프로그램(하나 이상의 쓰레드 포함)
  • Thread : 프로세스 내에서 동시에 실행되는 독립적인 실행 단위 (stack메모리)
    • 장점 
      • 빠른 프로세스 생성
      • 적은 메모리 사용
      • 쉬운 정보 공유
    • 단점
      • 교착상태(다중 프로그래밍 체제에서 하나 , 그 이상의 프로세스가 수행 할 수 없는 어떤 특정 시간 /
                           하나의 메서드를 여러 개의 쓰레드가 한번에 사용하게 되면 데드락 발생)
  • Thread 와 Process 차이
    • 이 프로세스 내에서 실행되는 각각의 일을 스레드 
    • 프로세스 내에서 실행되는 세부 작업 단위로 여러 개의 스레드가 하나의 프로세스를 이루게 됨
    • 자바에서 main()메서드를 수행하기 위한 목적으로 제공된다 하여 main 쓰레드라 불린다 
    • 서로 메모리 공간을 공유하지 못해, IPC(Inter process communication) 방식이 필요

17.자바의 메모리 영역(간단하게 설명)

  • 메서드 영역 : static 변수, 전역변수, 코드에서 사용되는 Class 정보 등.
    • 코드에서 사용되는 class들을 로더로 읽어 클래스별로 런타임 필드데이터, 메서드 데이터 등을 분류해 저장
  • 스택(Stack) : 지역변수, 함수(메서드) 등이 할당되는 LIFO(Last In First Out) 방식의 메모리
  • 힙(Heap) : new 연산자를 통한 동작할당된 객체들이 저장되며, 가비지 컬렉션에 의해 메모리가 관리

 

18. 컬렉션 프레임워크 

다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화 된 방법을 제공하는 클래스 집합

즉, 데이터를 저장하는 자료 구조, 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현

인터페이스를 사용해 구현

  • List 인터페이스
    • 순서가 있는 데이터 집합, 데이터 중복 허용
    • vector , arraylist , linkedlist , stack , queue
  • Set 인터페이스
    • 순서가 없는 데이터 집합, 데이터 중복 허용 x
    • hashSet, TreeSet
  • Map 인터페이스
    • 키와 값의 한 쌍으로 이루어지는 데이터 집합, 순서가 없음
    • 키는 중복 허용 x, 값은 중복 가능
    • haspmap , treemap, hashtable, properties

19. 제네릭

코드 블럭 내부에서 쓸 자료형을 외부에서 지정하는 기법

하지 않으면, 원하지 않는 자료형이 입력되었을 때 오류를 컴파일 시점에 잡아낼 수 없다

클래스<사용할 타입>

 

20. 자바 재귀함수

자기 자신을 호출하는 함수 

원래 범위의 문제에서 더 작은 범위의 하위 문제를 먼저 해결함으로 원래 문제 해결 

꼭 재귀호출이 끝나는 종료 조건이 있어야 한다

 

반응형
반응형

<기타 지식 >

-안드로이드 P

 : 오레오의 다음 버전, 2018년 3분기에 공개될 새로운 안드로이드 버전.

 1) 와이파이 RTT : 와이파이 Accss Point까지 거리를 측정, 3개 이상의 AP와 거리를 파악해 1-2cm 오차로 장치의 위치 계산 가능 => 건물 내 길 안내, 음성으로 가까운 조명을 켜는 서비스

 2) 디스플레이 컷 아웃 : 아이폰x같은 노치 디자인을 적용한 스마트폰에서 상태표시줄 높이 관리 가능.

 => 이용자의 몰입을 방해하지 않도록 전체화면으로 콘텐츠 표시할 수 있게

 3) 스마트 리플라이 : 그룹대화, 개별대화 식별할 수 있게 함 + 메시지 내용 분석하여 답장 내용 추천

 4) 통화 중 녹음기능 감지 시 상대방에게 알림

 5) 듀얼카메라에 특화 된 기능

 

 

- QR코드란?

 : Quick Response의 약자

작은 공간에 기존 바코드보다 훨씬 많은 데이터를 담을 수 있음

오류 정정 기능이 있어, 일부가 손상되어도 복원이 가능 하다

360도 어느 방향에서나 읽을 수 있다. (3가지의 네모를 통해서)

연결 기능을 지원한다. (여러 QR코드에 나뉘어 저장된 정보를 다른 데이터로 연결 가능)

 

닷넷과 자바의 차이는?

 : (닷넷) ms에서 개발한 windows/mac os프로그램 개발 및 실행 환경

 (자바) 웹 어플리케이션 개발을 위한 플랫폼.

 

모바일 웹과 모바일 앱의 차이는?

 : (모바일 웹) HTML기반 웹 브라우저로 동작

                  (장) 플랫폼에 상관없이 모든 모바일 기기에서 빠르게 접근, 이용 가능
                        (URL, QR CODE, NFC)

                       하나의 웹사이트로 수많은 종류의 모바일 기기 유저가 경험 가능

 (모바일 앱) 디바이스에 설치 후 사용

                 (장) 네트워크 연결 없이도 동작할 수 있도록 개발 가능

                       특정 타겟에 맞춤 컨텐츠 제공 가능

 

- SI와 SM의 차이는?

 : (System Integration) 새로운 시스템 구축을 위해 일정기간 프로젝트를 진행

  새로운 IT개발 기술이나 다양한 개발 경험으로 다양한 분야를 접하며 빠르게 성장할 것

(System Management) 그렇게 구축된 시스템을 오픈 이후에 사용하며 개선사항/ 오류사항에 대한 유지보수

 개발된 시스템을 분석, 필요한 기능을 추가하거나 수정하면서 업무지식에 대한 전문가로 성장

 

- SW개발론에 대해서?

 : (폭포수) 순차적인 소프트웨어 개발 프로세스

 => 요구사항 분석 / 설계 / 구현 / 테스트 / 유지보수

 (애자일) 프로젝트의 방향을 지속적으로 검토, 버그를 고치고 필요한 것을 바꾸며 다시 개발을 진행할 수 있도록 변화에 대처하면서 위험요소를 최소화.

 (V모델) 폭포수 모델의 확장된 형태, 테스트 단계를 추가. 각 개발 단계 검증에 초점하여 오류 줄임

 (프로토타입모델) 요구사항 분석 / 프로토타입 설계 / 프로토타입 개발 / 사용자 평가 / 구현

 (나선형모델) 계획 및 초기 요구 분석/ 1차 위험분석 / 1차 프로토타입 개발 / 1차 사용자 평가 / 처음으로

 

인터넷과 인트라넷의 차이는?

 : (인터넷) 외부와 광범위하게 연결되어있는 여러 개의 네트워크를 묶은 개념

 (인트라넷) 조직이나 단체 내부에서 사용되는 네트워크.

 (엑스트라넷) 인트라넷과 유사하지만 특정 조직의 인트라넷을 사용이 허가된 사람 이외에도 고객, 협력업체 등에서 사용할 수 있도록

 

방화벽이란 무엇인가?

 : 트래픽을 모니터링해 허용하거나 차단하는 툴

 

프레임워크란?

 : 개발할 때 설계 기본이 되는 뼈대나 구조, 환경

 

- XML이란?

 : 확장할 수 있는 표시 언어. 태그를 사용자 임의로 만들 수 있음. 텍스트 기반의 간결한 데이터형.

 Html이 가지는 태그의 한계를 극복. 웹에서 데이터 및 구조화된 문서를 위한 보편적 표준

 

블루투스란

 : 휴대폰이나 그 주변장치를 연결하는 무선 통신 기술. 연결 케이블 없이 전파를 사용하여 데이터를 주고받기 위한 규격.

 

리눅스와 유닉스의 차이는?

 : (리눅스) 유닉스의 장점을 포함한 유닉스와 거의 닮은 운영체제.

 (유닉스) 서버용 운영체제.암호화 능력이 좋고 안정성과 메모리 관리 능력이 좋음.

 

- TCP/UDP 차이는? (TCP/IP 4계층 응용, 전송, 인터넷, 네트워크인터페이스 중 전송계층)

 : (TCP) 연결형 프로토콜로 목적지와 수신지를 확실히 하여 정확한 전송을 보장하기 위해 세션을 수립함. 3 way handshake로 연결을 설정, 4 way handshake로 해제. 높은 신뢰성. UDP보다 속도가 느림. 1:1 통신

 (UDP) 비연결형 프로토콜로 데이터를 빨리 전달 하는 것을 목적으로함. 신뢰성이 낮지만 TCP보다 빠름. 실시간서비스(스트리밍)처럼 연속성이 중요한 서비스에 사용. 1:1 & 1:다 & 다 : 다 통신

 

- IPv6란?

 : IPv4 (32비트) 주소가 모자라 대안으로 제안된 인터넷 프로토콜 => 128비트

 

임베디드 시스템, 임베디드 SW란?

 : 제어가 필요한 시스템 내에 존재하는 시스템, sw이다. 특정목적의 컴퓨터 시스템이며, 전체 장치의 일부분으로 구성,

 

- VPN과 NAT의 차이는?, VPN의 구성요소는?

 : (VPN) Virtual Private Network, 인터넷 네트워크를 이용해 특정 집단만 사용할 수 있는 작은 네트워크 구축. 인터넷 회선을 암호화된 규격을 통해 개인 전용 선 처럼 사용

 (NAT) Network Address Translation, 네트워크 주소 변환

사설 ip주소를 공인 ip주소로 바꿔주는데 사용함.

 

스레드와 프로세스의 차이는?

 : (스레드) 프로세스가 할당 받은 자원을 이용하는 실행 단위, 프로세스 하나가 생성되면 하나의 메인스레드 생성됨. 추가하지 않는 한 모든 코드는 메인스레드에서 실행됨.

 (프로세스) 운영체제로부터 자원을 할당 받는 작업의 단위, 컴퓨터에서 실행중인 프로그램

 

- ERP란?

 : 기업 자원 관리(Enterprise Resource Planning) 기업 전체의 인적, 물적 자원을 효과적이며 통합적으로 관리하며 경영의 효율화와 기업 경쟁력을 강화하는 솔루션입니다. 생산, 판매, 인사, 회계 등 기업의 전반적인 업무 프로세스를 하나의 체계로 구축하며 정보를 공유하고 신속한 업무처리를 도와주는 시스템.

 

- Git, Github

 : (Git) 여러 대의 컴퓨터

 (Github) 여러 대의 컴퓨터가 소통할 수 잇는 서버

 

- “RESTful 하다”의 정확한 의미

 : Representational State Transfer의 약자, REST를 지킨 서비스 디자인

 REST 구성 (자원 = URI, 명령= HTTP Method , 표현 = Representations)

빅오, 오메가, 세타

 (빅오) 최악의 경우, (오메가) 최선의 경우, (세타) 최소와 최악의 중간인 평균복잡도

반응형

+ Recent posts