본문 바로가기
WIL

08/14 WIL(모의면접-1)

by 달리는 꿈나무 2022. 8. 14.

1. 모의 면접 준비

항해99가 끝났지만 WIL 쓰는 것은 계속 된다. 이번 주는 모의 면접을 준비하면서 내가 가진 자바, 스프링 관련 지식들을 정리하고 있다.

 

프레임 워크 

-> 뼈대라는 뜻으로 소프트웨어를 만들 때 기본적인 구조를 미리 구현해 놓은 것 

장점: 기본적인 틀이 잡혀 있어 품질이 보장되고 생산성이 좋아짐

단점: 틀에 맞추어 코딩을 해야하니 익숙해지기 어렵다, 커스터마이징이 힘듬

 

MVC 디자인 패턴

-> 모델, 뷰, 컨트롤러로 모델은 동적 데이터, 뷰는 html, 컨트롤러는 api 관리를 각 영역에서 맡는다. 유지 보수가 용이하다.

 

자바의 특징

-> 1. 객체 지향형 프로그래밍:

  • 데이터를 객체로 취급하여 객체의 상호작용을 통해 프로그램이 동작하는것,
  • 객체를 연결시켜 프로그래밍하면 캡슐화, 상속, 추상화, 다형성의 특징 존재
    • 캡슐화: 비슷한 역할을 하는 속성과 메소드들을 하나의 클래스로 묶은 것
    • 상속: 클래스를 재사용하거나 확장하는 것 이것으로 코드를 재활용할 수 있다.
    • 추상화: 어떤 실체로부터 공통적인 부분이나 관심있는 특성을 한 곳에 정의하는 것
      • adstract 클래스:  추상 메소드를 하나 이상 가지고 있는 클래스, 단일 상속, 확장의 개념
      • interface 클래스: 모든 메소드가 추상 메소드로 다중 상속이 가능하며 구현체 반드시 필요
    • 다형성: 같은 모양의 코드가 다른 기능을 하는 것
      • 오버라이딩: 부모 메소드에게 상속받은 메소드를 내부적으로 확장하거나 수정하여 사용하는 것
      • 오버로딩: 한 클래스 내에 존재하는 같은 메소드들을 파라미터의 타입이나 갯수를 다르게 해서 정의
  • 재사용성 증가 유지 보수 감소

    2. 멀티 스레드 지원

  • 프로세스 vs 스레드
    • 프로세스: OS에서 실행에 필요한 메모리를 할당받아 메모리를 사용하는 하나의 애플리케이션
    • 멀티 테스킹: 2가지 이상의  작업을 동시에 처리하는것
    • 멀티 프로세스: 애플리케이션 단위의 멀티 태스킹
    • 스레드: 하나의 코드 실행 흐름을 말함, 한 프로세스 내에 스레드가 2개라면, 2개의 코드 실행이 존재
    • 멀티 스레드: 애플리케이션 내부에서의 멀티 태스킹
    • 메인 스레드: 메인 메소드가 실행하면 시작되는 스레드로 작업 스레드를 만들어서 병렬로 코드 실행 가능
    • 작업 스레드: 메인 메소드 실행 후 내부에서 자체적으로 돌아가는 하위 코드 진행
    • 프로세스는 독립적이기 때문에 메모리 영역 공유 안 함
    • 스레드는 스텍을 제외한 메모리 영역을 공유함

    3.  Collection Framework

  • 자바 내에 클래스로 구현된 자료구조들의 집합
    • List<E>: 중복된 데이터 허용, 순서 존재
      • ArrayList: 데이터 조회는 빠르지만 데이터 삽입, 삭제가 LinkedList보다 느림
        • 동적 배열로 파이썬의 리스트를 생각하면 된다. 인덱스 번호로 인덱싱하기 편하다.O(1)
        • 다만 데이터를 삽입 또는 삭제할 때 데이터들을 밀거나 당겨야하기에 O(n)
      • LinkedList: 데이터 조회는 느리지만 데이터 삽입, 삭제가 ArrayList에 비해 빠르다.
        • 노드들의 결합으로 데이터와 포인터를 가지고 한 줄로 연결되어 있다.
        • 중간 지점에 데이터를 넣을 때 O(1)이 걸리므로 빠르다. 삭제도 마찬가지
        • 조회는 앞에서부터 쭉 포인터를 타면서 넘어가야하기에 O(n)이다.
        •  

'WIL' 카테고리의 다른 글

9/18 WIL  (0) 2022.09.18
9/11 WIL  (0) 2022.09.11
09/04 WIL  (0) 2022.09.04
08/28 WIL  (0) 2022.08.29
08/21 WIL  (0) 2022.08.21