백엔드 개발직 면접 예상 질문 7

7. 팀 프로젝트 관련 및 인성 질문

팀 프로젝트 프로젝트에 대한 소개 인원, 담당 업무 조는 어떻게 편성이 됐는가? 담당 업무를 맡은 이유 주제는 어떻게 정했는가? 테이블은 몇 개인가? 칠판에 ERD 그려 보기 테이블 조인은 몇 개 까지 해봤는지? 프로젝트에서 예외 처리 예외 처리 클래스 구현 1) enum형태로 MemberErrorCode를 만든다. 2) MemberException: RuntimeException을 상속하는 예외 클래스, MemberErrorCode 하나의 멤버변수만 있다. 3) MemberErrorResponse: String message와 MemberErrorCode로 이뤄짐, Response을 상속한다. Controller 클래스에서 반환형으로 지정해서 프론트한테 HttpStatus와 함께 보내주는 역할이다. 4..

6. JPA(Java Persistence API)

JPA(Java Persistence API) JPA란? Java 진영의 ORM 기술 표준을 말한다. ORM: 직접 SQL구문을 사용하지 않고 객체와 데이터베이스의 스키마를 매핑시킨다. 객체는 객체대로 설계하고 RDBMS는 RDBMS대로 설계한다. ex) Hibernate(JPA를 구현한 오픈소스) https://oranthy.tistory.com/321 JPA 등장 배경 패러다임의 불일치: Java(속성과 기능을 캡슐화해서 사용하는 게 목표) vs RDBMS (데이터 정교화 및 보관) JPA 장단점 장점 쿼리를 작성할 필요 없어서 코드가 줄어든다. 가독성 좋다. 간편한 수정 가능 동일한 쿼리에 대한 캐시 기능을 사용해서 성능이 좋다. 단점 매핑 설계를 잘못하면 성능 저하 JPA를 제대로 사용하려면 알아..

5. Spring

Spring 스프링 프레임워크가 전자정부프레임워크로 자리 잡은 이유는? 전자정부표준프레임워크(eGov)란? 행정부 산하 한국 정보화진흥원에서 만든 웹 기반 애플리케이션 프레임워크로서 정부, 공공기과느 공기업 등의 웹 사이트에 자주 쓰이는 공통 기능을 자바의 Spring Framework와 유명 Java 라이브러리(마이바티스, 등)을 가지고 미리 만들어놓은 컴포넌트와 이를 개발하는 개발, 운영, 관리 환경 등으로 구성된다. 다양한 기술이 난잡하게 사용된던 SI 업계에 표준을 지정해줘서 전체적인 생산성을 증가시키려는 목적이 있다. 장점 정형화되어 있어서 일정 수준 이상의 품질을 기대 가능하다 전자 정부 프레임워크이기 때문에 한국에서 수요가 크다. 확장성: 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이..

4. Java

Java 객체 지향 프로그래밍이란? 실제 세계를 모델링해서 소프트웨어를 개발하는 방법이다. ex) Java, Python, C++, Swift 객체 지향의 특성 4가지: 캡슐화, 추상화, 다형성, 상속 https://brownbears.tistory.com/407 객체 지향을 정의하자면 의존성 관리이다. 객체지향으로 의존성을 관리함으로써 변경 영향을 최소화하고 독립적인 배포가 가능해지며 독립적인 개발이 가능해진다. 따라서 객체 지향에서 가장 중요한 것은 의존 역전 원칙을 통한 고수준 정책과 저수준 구현 세부 사항의 분리라고 할 수 있다. 장점: 재활용성이 높다. 단점: 속도가 느리다. 절차 지향 프로그래밍 Def) 절차 지향 프로그래밍 : 순서대로 프로그램 전체가 유기적으로 연결되도록 하는 프로그래밍 기..

3. 인프라 및 클라우드

클라우드(cloud) Def) 클라우드: 인터넷을 통해 접근 가능한 서버와 서버에서 작동하는 소프트웨어와 데이터베이스를 의미한다. 클라우드 컴퓨팅이란? 인터넷 기반 컴퓨팅의 일종으로 자신의 컴퓨터가 아닌 클라우드에 연결된 컴퓨터로 정보를 처리하는 기술을 말한다. 사용자의 직접 관리없이 데이터 스토리지와 컴퓨팅 파워와 같은 “컴퓨터 시스템 리소스”를 필요 시 바로 제공하는 것을 말한다. ex) 네이버 오피스, 구글 docs, work space, acrobat 클라우드 컴퓨팅 모델 - laas, paas, saas 란? laas(Infrastructure as a Service, 서비스형 인프라스트럭처): 비즈니스 운영에 필요한 스토리지, 네트워킹 및 컴퓨팅 리소스를 제공한다. ex) AWS EC2 hos..

2. 운영체제, 네트워크, 보안과 암호학

2.1 네트워크(Network) 웹 통신의 큰 흐름에 대해 설명하라 TCP, UDP 차이점 TCP(transmission control protocol, 전송 제어 프로토콜)는 연결형 프로토콜로서 데이터 전송 순서, 신뢰성 보장, 속도는 느림 에러 발생 시 재전송을 요청하고 에러를 복구한다는 점에서 UDP와 다르다. ex) web, e-mail, HTTP, SMTP, 파일 전송 등 UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜): 비연결형 프로토콜로서 데이터 그램 단위로 데이터를 전송하는 프로토콜이다. 데이터를 보낼 때마다 어떤 응답이 발생하지 않는다. 연결이 잠깐 끊기더라도 그 내용을 추측 가능한 데이터를 보낼 때 사용한다. ex) 스트리밍, 전화, 브로드캐스팅 TCP는 ..

1. 데이터베이스(DataBase)

데이터베이스(DataBase) 데이터베이스 사용하는 이유와 특징 데이터베이스를 사용하는 이유: 데이터베이스가 사용되기 이전에는 파일 시스템을 이용했으나 데이터 종속성, 중복성, 데이터 무결성 문제가 있었다. 데이터베이스의 특징 독립성 물리적 독립성: 데이터베이스 사이즈를 늘리거나 데이터 파일 늘리거나.. 해도 관련된 응용 프로그램을 수정할 필요 없다. 논리적 독립성: DB는 논리적 구조로 다양한 응용 프로그램의 논리적 요구를 만족시킬 수 있다. 무결성(integrity): 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능, 데이터의 유효성 검사를 통해 무결성 유지 무결성은 정확성, 일관성, 유효성이 유지되는 것을 의미한다. 보안성: 인가된 사용자들만 데이터베이스에 접근 가능하도록 유지..