국비지원&취업

Java 신입 개발자 면접 질문 리스트

빈코 2023. 3. 3. 17:12

오늘은 신입 개발자를 대상으로 한 면접 흐름예상질문 리스트를 주제로 포스팅하려 합니다. 주관적인 경험을 바탕으로 작성하는 부분들이 많기 때문에 참고만 해주세요😊

 

로고
면접 준비

 

📗인사 관련 면접

대부분 개발 직군의 면접은 2:1이나 3:1로 면접을 진행합니다. 면접자들은 인사담당자, 개발 팀장, 임원들로 구성되며 각자 본인 업무에 해당하는 질문을 합니다. 제가 경험했던 면접들에서는 인사담당자님이 먼저 질문을 했습니다.

 

 

Q. 오시는데 얼마큼 걸리세요?

- 있는 그대로 말씀하시되, 만약 거리가 너무 멀다면 '1시간 조금 더 넘게 걸리는데 환승을 안 합니다'라는 긍정적인 멘트를 섞어주는게 좋을 것 같아요. 면접에 큰 영향을 끼치는 질문은 아니지만, 대게 처음 나오는 질문이기 때문에 좋은 인상을 남기는 게 좋습니다.

 

 

🌟Q. 간단하게 자기소개 해주세요.

- 시간을 정해주는 회사도 종종 있습니다. 정해주지 않더라도 30초~1분 내외로 본인을 어필해 주세요. 사는 곳, 나이, 이름은 이력서에 충분히 기재되어 있습니다. 자신의 인적사항을 소개한다기보다는 지원한 회사의 가치관과 추구하는 방향성에 초점을 두고 답변하시는 게 좋습니다. 예를 들어, '안녕하세요 대규모 트래픽을 경험하고 싶은 개발자 OO입니다. OO언어를 주 언어로 삼으며, OO프로젝트를 경험한 적이 있습니다. 회사 소개를 보니 OOO 한 것들이 있었는데, 제가 추구하는 방향과 같아서 지원하게 되었습니다' 

 

또한, 자기소개에서 어필한 언어와 프로젝트는 재질문이 이어질 가능성이 있습니다. 본인이 자신 있는 분야를 언급함으로써 면접 흐름 자체를 본인의 흐름대로 바꾸시면 좋습니다😀

 

 

🌟Q. 회사 지원동기 및 회사 소개

- 가장 기본적인 질문입니다. 이 질문에 답하기 위해선 사전에 회사에 대해 많은 조사가 필요합니다. 회사 홈페이지나 회사가 운영하는 기술 블로그, 잡플래닛 등 다양한 매체를 통해 지원하는 회사에 대해 알아보고 본인과의 공통점을 찾아야 합니다. 회사에서 필요로 하는 인재상에 부합하다면 어필하고, 부합하지 않더라도 노력을 통해 회사 성장에 도움을 줄 수 있음을 어필하면 좋습니다.

 

 

Q. 갈등이 생긴다면 어떻게 풀어나갈 것인지?

- 아무리 개발을 잘한다 할지라도, 회사도 엄연한 사회이기 때문에 인간관계가 중요합니다. 대부분의 갈등은 영업팀과의 갈등, 선후배 사이의 갈등들이 많기 때문에, 이 질문은 본인이 겪었던 갈등을 예로 삼아서 풀어나간 방법을 말씀하시는 게 좋습니다. 

 

 

🌟Q. 지원한 분야에 관한 질문

- 이 질문은 대게 어떤 업무를 맡을 거 같은지에 대한 질문입니다. 사실 회사에 들어가지도 않았는데 어떤 업무를 줄지 면접자 입장에서는 모르지만, 질문의 의도는 자신이 지원한 분야에 대해 얼마나 관심이 있는지에 대한 질문입니다. 단순한 웹개발이 아닌, 지원한 회사가 어떤 기술을 중점을 두는지 파악해 가시면 쉽게 대답할 수 있는 질문입니다

 

 

이 밖에도 

 

Q. 업무 스트레스 해결하는 방법이 있는지?

Q. 가장 힘들었던 일과 해결한 경험?

Q. 개발자가 되기 위해 어떻게 공부하는가?

🌟Q. 최근에 관심을 갖게 된 기술은?

🌟Q. 본인의 협업 스타일과 일을 나누는 방법은?

Q. 개발을 좋아하는가?

🌟Q. 프로젝트에 있어서 가장 중요하는 것은 무엇이라 생각하는가?

Q. 어떤 사원이 되고 싶은가? 

 

📘기술 관련 면접

기술 관련 질문은 대부분 본인의 프로젝트에 대해서 많이 질문합니다. 어떠한 기술을 썼고, 그 기술의 장단점과 오류를 만났을 때 개선했던 과정, 해당 개선법보다 더 좋은 방법은 없었는지 등에 대한 질문을 받습니다. 포스팅에서는 프로젝트 관련 기술 면접에 대해서는 설명이 불가해서 기본적인 Java 질문과 기초지식을 간추렸습니다.

 

 

🌟Q. 많은 트래픽이 발생한 경우 대처하는 방법

- 스케일 업(Scale Up) 방법을 사용하여 서버에 CPU나 RAM 등을 추가하여 서버의 하드웨어 스펙을 향상하거나, 스케일 아웃(Scale Out) 방법을 사용하여 서버를 여러 대 추가하여 시스템을 증가시킨다. 일반적으로는 스케일 아웃을 많이 사용한다.

 

 

Q. Servlet

- 서블릿(Servlet)이란 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술입니다. Spring MVC에서 Controller로 이용되며 사용자의 요청을 받아 처리한 후에 결과를 반환합니다.

 

 

🌟Q. Dispatcher Servlet

- 디스패쳐 서블릿(Dispatcher Servlet)이란 톰캣과 같은 서블릿 컨테이너를 통해 들어오는 모든 요청을 제일 앞에서 받는 컨트롤러입니다. 디스패처 서블릿은 공통된 작업을 처리한 후에, 적절한 세부 컨트롤러로 작업을 위임해 줍니다. 그리고 각각의 세부 컨트롤러는 처리할 부분을 처리한 후에 반환 할 view를 디스패처 서블릿에 다시 넘기게 됩니다.

 

 

🌟🌟Q. MVC 패턴

- MVC(Model-View-Controller) 패턴은 아키텍처를 설계하기 위한 디자인 패턴입니다. 데이터를 저장하는 컴포넌트인 Model, 사용자 인터페이스(UI) 컴포넌트인 View, 사용자의 요청을 처리하고 Model과 View를 중개하는 컴포넌트인 Controller로 구성됩니다.

 

 

🌟🌟Q. Spring MVC

- Spring MVC란 웹 애플리케이션 개발을 위한 MVC 패턴 기반의 웹 프레임워크입니다. Spring MVC는 애플리케이션의 구성요소를 Model, View, Controller로 분리합니다. 또한, 아래와 같은 컴포넌트들로 구성됩니다.

  • Dispatcher Servlet : 클라이언트의 요청을 먼저 받아들이는 서블릿
  • Handler Mapping : 해당 요청이 어떤 컨트롤러에게 온 요청인지 검사하는 역할
  • Controller : 클라이언트의 요청을 받아 처리하여 결과를 디스패처 서블릿에 전달함
  • ViewResolver : View의 이름을 통해 알맞은 View를 찾음
  • View : 사용자에게 보일 UI 화면

- Spring MVC의 장점으로는 의존성 주입을 통해 컴포넌트 간의 결합도를 낮출 수 있어 단위 테스트가 용이하며 제어의 역전을 통해 객체의 라이프사이클에 관여하지 않고 개발에 집중할 수 있습니다

 

- Spring MVC의 단점으로는 XML을 기반으로 하는 프로젝트 설정은 너무 많은 시간을 필요로 하며 톰캣과 같은 WAS를 별도로 설치해주어야 합니다.

 

- 해결책으로는 SpringBoot를 사용하는 것입니다. 자동 설정(AutoConfiguration)을 도입하여 디스패처 서블릿 등과 같은 설정 시간을 줄여주고, 프로젝트의 의존성을 독립적으로 선택하지 않고 spring-boot-starter로 모아두어 외부 도구들을 사용하기 편리합니다. 또한, 내장 톰캣을 제공하여 별도의 WAS를 필요로 하지 않습니다.

 

 

Q. CDN

- CDN(Content Delivery Network)는 물리적으로 떨어져 있는 사용자에게 콘텐츠를 더 빠르게 제공하기 위해 고안된 기술입니다. 만약 우리나라에 있는 사람이 미국에 있는 서버로부터 이미지나 파일 등을 다운로드하려고 하면 시간이 오래 걸립니다. 이에 따라 느린 응답속도와 다운로드 시간을 극복하기 위해 서버를 분산시켜 캐싱해 두고, 빠르게 다운로드할 수 있게 합니다.

 

- CDN은 콘텐츠에  대한 요청이 발생하면 사용자와 가장 가까운 위치에 존재하는 서버로 매핑시켜 요청된 파일의 캐싱된 버전으로 요청을 처리합니다. 서버가 파일을 찾는 데 실패하면 CDN 플랫폼의 다른 서버에서 콘텐츠를 찾은 다음 앤드유저에게 응답을 전송합니다.

 

 

🌟Q. Spring 기초지식

  • DI(Dependency Injection) : 한 객체에서 다른 객체를 필요로 하여 의존성을 갖게 하는 기술
  • DL(Dependency Look-up) : 한 객체에서 필요로 하는 다른 객체를 찾아서 사용하는 기술
  • IoC(Inversion of Control) : 직접 제어해야 하는 부분에 대한 권한을 프레임워크 등에 넘기는 기술
  • AOP(Aspect Oriented Programming) : 공통의 관심 사항을 추출하여 원하는 곳에 적용하는 기술

 

 

🌟Q. VO, DTO, BO, DAO

  • VO(Value Obejct) : 실제 데이터를 저장하는 클래스
  • DTO(Data Transfer Object) : 데이터를 주고받기 위해 사용하는 클래스
  • BO(Business Object) : 여러 DAO를 활용해 비즈니스 로직을 처리하는 클래스로 Service에 해당함
  • DAO(Data Access Object) : DB에 접근하여 실제 데이터를 조회 또는 조작하는 클래스로 Repository 또는 Mapper에 해당함

 

 

Q. 프레임워크와 라이브러리

- 프레임워크는 전체적인 흐름을 자체적으로 제어하고, 라이브러리는 사용자가 흐름에 대한 제어를 하며 필요한 상황에 가져다 쓸 수 있습니다. 프레임워크와 라이브러리는 실행 흐름에 대한 제어 권한이 어디 있는지에 따라 달라집니다. 프레임워크를 사용하면 사용자가 관리해야 하는 부분을 프레임워크에 넘김으로써 신경 써야 할 것을 줄이는 제어의 역전(IoC, Inversion Of Control)이 적용됩니다.

 

 

 

🌟Q. Java의 장점과 단점

- 장점으로는 JVM 위에서 동작하기 때문에 운영체제에 독립적이며 가비지 컬렉터가 메모리를 관리해 주기 때문에 편리하게 사용할 수 있습니다. 등등..

- 단점으로는 JVM 위에서 동작하기 때문에 실행 속도가 상대적으로 느리며, 다중 상속이나 타입에 엄격하는 등 제약이 많습니다. 등등..

 

 

Q. Garbage Collector

- 가비지 컬렉터(Garbage Collctor)는 '더 이상 참조되지 않는 메모리'인 가비지를 청소해 주는 JVM의 실행 엔진의 한 요소입니다. JVM은 new와 같은 연산에 의해 새롭게 생성된 객체들 중에서 더 이상 참조되지 않는 객체를 정리해 줍니다. 가비지 컬렉터는 Heap 영역을 위주로 탐색하여 메모리를 정리합니다.

 

 

🌟Q. Overriding과 Overloading

- 오버라이딩(Overriding)은 상위 클래스가 가지고 있는 메서드를 하위 클래스에서 재정의하여 사용하는 기술이고, 오버로딩(Overloading)은 매개변수의 타입과 개수를 변경하면서 같은 이름의 메서드를 여러 개 사용하는 기술입니다.

 

 

Q. Class, Object, Instance

- 클래스(Class)는 객체를 만들어내기 위한 설계도 혹은 틀을 의미하며, 객체(Object)는 클래스를 기반으로 선언된 대상을 의미하고 클래스의 인스턴스라고도 부릅니다. 인스턴스(Instance)는 객체에 메모리가 할당되어 실제로 활용되는 실체를 의미합니다.

 

 

🌟Q. 추상클래스와 인터페이스

- 추상클래스는 단일 상속만이 가능하며, 모든 접근 제어자를 사용할 수 있습니다. 변수와 상수를 선언할 수 있으며 추상메서드와 일반 메서드를 선언할 수 있습니다.

 

- 인터페이스는 다중 구현이 가능하며, public 접근 제어자만 사용할 수 있습니다. 상수와 추상메서드만 선언할 수 있습니다.

 

 

Q. List, Set, Map

- 리스트(List)는 데이터를 순차적으로 저장하며, 데이터의 중복과 null 값을 허용합니다

 

- Set은 순서 없이 Key로만 데이터를 저장하며, Key의 중복과 Key의 null 값을 허용하지 않습니다.

 

- Map은 순서 없이 Key, Value로 데이터를 저장하며, Value는 중복을 허용하지만 Key는 중복을 허용하지 않고, null도 허용하지 않습니다.

 

 

Q. StringBuffer와 StringBuilder

- StringBuffer는 동기화를 지원하며 속도가 느리지만 병렬 상황에서 안전하고, StringBuilder는 동기화를 지원하지 않으며, 속도는 빠르지만 병렬 상황에서 안전하지 않습니다.

 

 

Q. synchornized

- Java에서 지원하는 synchornized 키워드는 여러 스레드가 하나의 자원을 이용하고자 할 때, 한 스레드가 해당 자원을 사용 중인 경우 데이터에 접근할 수 없도록 막는 키워드입니다. synchornized 키워드를 이용하면 병렬 상황에서 자원의 접근을 안전하게 하지만, 자원을 이용하지 않는 스레드는 락에 의한 병목현상이 발생하게 됩니다.

 

 

🌟Q. Java8(추가사항)

- Java8 버전에서는 함수형 프로그래밍을 위한 Stream API람다, 함수형 인터페이스 등과 Null-safe 한 작업을 위한 Optional API, DateTime API 등이 추가되었습니다.

 

 

🌟Q. Index

- 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상하기 위한 자료구조입니다. 만약 우리가 책에서 원하는 내용을 찾을 때 색인을 통해 찾는 것처럼 데이터베이스도 Index를 통해 원하는 값을 빠르게 찾습니다. Index를 찾지 않고 전체를 탐색하는 Full Scan을 수행한다면, 처리 속도가 현저히 떨어집니다.

 

 

Q. Index 자료구조

- Hash Table : 칼럼의 값으로 생성된 해쉬를 기반으로 인덱스를 구현합니다. 시간복잡도가 O(1)이기 때문에 검색이 매우 빠르지만, 부등호와 같은 연속적인 데이터를 위한 순차 검색은 불가능합니다.

 

- B+ Tree: 자식 노드가 2개 이상인 B-Tree를 개선시킨 자료구조입니다. 해쉬 테이블보단 시간이 오래 걸립니다.

 

 

🌟🌟Q. Hash Table

- 해시 테이블은 Key, Value로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있는 자료구조이다. 해시 테이블이 빠른 검색 속도를 제공하는 이유는 내부적으로 배열을 사용하여 데이터를 저장하기 때문인데, 각각의 Key값에 해시함수를 적용해 배열의 고유한 index를 생성하고, 이것을 활용해 값을 저장하거나 검색하게 된다. 여기서 실제 값이 저장되는 장소를 버킷 또는 슬롯이라고 한다.

 

우리는 병렬 처리를 하면서 자원의 동기화를 고려해야 하는 상황이라면 해시 테이블을 사용해야 하며, 병렬 처리를 하지 않거나 자원의 동기화를 고려하지 않는 상황이라면 해시 맵을 사용 하면 된다.

 

 

Q. Transaction

- 트랜잭션은 하나 이상의 쿼리를 처리할 때 동일한 Connection 객체를 공유하여 에러가 발생한 경우 모든 과정을 되돌리기 위한 방법입니다.

 

 

Q. Memory

- 메모리는 컴퓨터에서 작업을 수행하기 위해 처리 대상이나 결과 등을 저장하기 위한 공간입니다. 프로그램을 실행하기 위한 정보들은 메모리에 저장되어 처리됩니다.

 

 

🌟Q. RDBMS vs NoSQL

- RDBMS는 2차원의 행과 열로 데이터의 관계를 관리하는 데이터베이스입니다. 장점으로는 스키마에 맞춰 데이터를 관리하기 때문에 데이터의 정합성을 보장할 수 있지만, 단점으로는 시스템이 커질수록 쿼리가 복잡해지고 성능이 저하되며 수평 확장이 어렵습니다.

 

- NoSQL은 RDBMS가 비대해짐에 따라 관계가 복잡해지는 단점으로 인해 등장하였습니다. 장점으로는 스키마 없이 Key-Value 형태로 데이터를 관리하여 좀 더 자유롭게 데이터를 관리할 수 있지만, 단점으로는 중복된 데이터 추가가 가능하기 때문에 이에 따른 별도의 관리가 필요합니다.

 

 

Q. 프로세스와 스레드

- 프로세스는 메모리에 올라와 실행되고 있는 프로그램의 인스턴스를 뜻합니다. 운영체제로부터 독립된 메모리 영역을 할당 받으며, 독립적이기 때문에 통신하기 위한 IPC를 사용해야 합니다. 프로세스는 최소 1개의 메인 스레드를 가지고 있습니다.

 

- 스레드는 프로세스 내에서 할당받은 자원을 이용해 동작하는 실행 단위입니다. Stack만 따로 할당 받고 Code, Data, Heap 영역은 공유합니다. 프로세스의 자원을 공유하기 때문에 다른 스레드에 의한 결과를 즉시 확인할 수 있습니다.

 

 

Q. 멀티 프로세스 vs 멀티 스레드

- 멀티 프로세스는 하나의 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 1개의 작업을 처리하도록 하는 것입니다. 1개의 프로세스가 죽어도 자식 프로세스 이외의 다른 프로세스들은 계속 실행되며, 프로세스들은 각각 독립적인 메모리를 할당받았기 때문에 통신하는 것이 어렵습니다.

 

- 멀티 스레드는 하나의 프로그램을 여러 개의 스레드로 구성하여 각 스레드가 1개의 작업을 처리하도록 하는 것입니다. 하나의 스레드에 문제가 생기면 전체 프로세스가 영향을 받고, 메모리를 공유하기 때문에 통신이 쉽고 자원을 효율적으로 사용할 수 있습니다.

 

멀티 스레드 프로그램을 개발한다면, 다수의 스레드가 공유 데이터에 동시 접근하는 경우 상호 배제 또는 동기화 기법을 통해 동시성 문제나 교착 상태가 발생하지 않도록 주의해야 합니다.

 

 

Q. DeadLock

- DeadLock(데드락, 교착상태)한정된 자원을 여러 프로세스가 사용하고자 할 때 발생하는 상황으로, 프로세스가 자원을 얻기 위해 영구적으로 기다리는 상태입니다. 예를 들어, 자원 A를 가진 P1과 자원 B를 가진 P2가 있을 때, P1은 B를 필요로 하고 P2는 A를 필요로 한다면 두 프로세스 P1, P2는 서로 자원을 얻기 위해 무한정 기다리게 됩니다. 

 

 

🌟Q. OOP

- OOP현실 세계를 프로그래밍으로 옮겨와 현실 세계의 사물들을 객체로 보고, 그 객체로부터 개발하고자 하는 특징과 기능을 뽑아와 프로그래밍하는 기법입니다. OOP로 코드를 작성하면 재사용성변형 가능성을 높일 수 있습니다.

 

 

🌟🌟Q. OOP의 5가지 설계 원칙

  • SRP(Single Responsibility Principle, 단일 책임 원칙) : 클래스는 단 하나의 목적을 가져야 하며 클래스를 변경하는 이유도 단 하나의 이유여야 한다.
  • OCP(Open-Closed Principle, 개방 폐쇄 원칙) : 클래스는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다.
  • LSP(Liskov Substitution Principle, 리스 코프 치환 원칙) : 상위 타입의 객체를 하위 타입으로 바꿔도 프로그램은 일관되게 동작해야 한다.
  • ISP(Interface Segregation Principle, 인터페이스 분리 원칙) : 클라이언트는 이용하지 않는 메서드에 의존하지 않도록 인터페이스를 분리해야 한다.
  • DIP(Dependency Inversion Principle, 의존 역전 법칙) : 클라이언트는 추상화(인터페이스)에 의존해야 하며, 구체화(구현된 클래스)에 의존해선 안된다.

 

 

Q. 절차지향 vs 객체지향

- 절차지향 프로그래밍은 물이 위에서 아래로 흐르는 것처럼 순차적인 처리를 중요시하는 프로그래밍 기법입니다. 물이 위에서 아래로 흐르는 것처럼 순차적인 처리를 중요시하는 프로그래밍 기법입니다. 가장 대표적인 언어로 C언어가 있고, 컴퓨터의 처리구조와 유사해 실행 속도가 빠릅니다. 하지만, 코드의 순서가 바뀌면 동일 결과를 보장하기 어렵습니다.

 

- 객체지향 프로그래밍은 실제 세계의 사물들을 객체로 모델링하여 개발을 진행하는 프로그래밍 기법입니다. 가장 대표적인 언어로 Java가 있고, 캡슐화, 상속, 다형성 등과 같은 기법을 이용할 수 있습니다. 다형성은 동일한 키보드의 키가 다른 역할을 하는 것처럼 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것을 의미합니다. 단점으로는 절차 지향 언어보다 실행속도가 느립니다.

 

 

🌟Q. 동기와 비동기의 차이

- 동기방식은 요청을 보내고 실행이 끝나면 다음 동작을 처리하는 방식으로 순서에 맞춰 진행되기 때문에 제어하기 쉽습니다. 하지만 여러 가지 요청을 동시에 처리할 수 없어 효율이 떨어질 수 있습니다. 동기 방식의 예시로는 콜센터 종업원이 일을 처리하는 방식과 같습니다. 콜센터의 직원은 한 손님의 전화 응대가 끝난 후에 다음 손님의 응대를 진행합니다.

 

- 비동기 방식은 요청을 보내고 해당 동작의 처리 여부와 상관없이 다음 요청이 동작하는 방식입니다. 작업이 완료되는 시간을 기다릴 필요가 없기 때문에 자원을 효율적으로 사용할 수 있지만, 작업이 완료된 결과를 제어하기는 어렵습니다. 비동기 방식의 예시로는 이메일이 있습니다. 우리는 한 사람에게 이메일을 보냈을 때 답변을 받지 않고도 이메일을 다시 보낼 수 있습니다.

 

 

🌟Q. RESTful API

- REST(Representational State Transfer) ful API는 HTTP 통신에서 어떤 차원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식입니다. RESTful API는 Resource(자원, URI), Method(요청 방식, GET or POST 등), 자원의 형태인 JSON, XML로 구성됩니다.

 

 

Q. HTTP 프로토콜

- HTTP(Hyper Test Transfer Protocol)이란 서버/클라이언트 모델을 따라 데이터를 주고받기 위한 프로토콜입니다. HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동합니다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구분됩니다.

 

 

🌟Q. HTTP vs HTTPS

- HTTP는 평문 데이터를 전송하는 프로토콜이기 때문에 HTTP로 비밀번호나 주민번호 등을 주고받으면 제삼자에 의해 조회될 수 있습니다. 이러한 문제를 해결하기 위해 HTTP에 암호화가 추가된 프로토콜이 HTTPS입니다.

 

- HTTPS는 자신의 공개키를 갖는 인증서를 발급하여 보내는 메시지를 공개키로 암호화하도록 하고 있습니다. 공개키로 암호화된 메시지는 개인키를 가지고 있어야만 복호화가 가능하기 때문에, 기업을 제외한 누구도 원본 데이터를 얻을 수 없습니다.

 

 

🌟🌟Q. GET vs POST

- GET 방식데이터를 조회하기 위해 사용되는 방식으로 데이터를 헤더에 추가하여 전송하는 방식입니다. URL에 데이터가 노출되기 때문에 보안적으로 중요한 데이터를 포함해서는 안됩니다.

 

- POST 방식데이터를 추가 또는 수정하기 위해 사용되는 방식으로 데이터를 바디에 추가하여 전송하는 방식입니다. 완전히 안전하다는 것은 아니지만 URL에 데이터가 노출되지 않아 GET 방식보다는 안전합니다.

 

 

Q. Parameter와 Argument

- Parameter는 함수를 선언할 때 사용하는 변수이고, Argument는 함수가 호출되었을 때 함수의 파라미터로 전달된 실체 값을 뜻합니다.

 

마치며

지금까지 신입 개발자분들을 초점으로 예상 질문 리스트에 대해 포스팅했습니다. 제가 신입 시절에 받았던 질문들을 복기한 것이기도 하고, 제 주관적인 생각이 들어간 부분들도 꽤 있기 때문에 참고만 부탁드립니다.

 

그리고 기억에 남았던 면접 질문들을 공유해 주시면 감사하겠습니다. 리스트에 추가할게요 :)

 


👨‍👩‍👦‍👦 오픈채팅방 운영

취업을 준비하는 예비 개발자분들을 위한 질문&답변할 수 있는 공간을 만들었습니다. 취업과 이직을 하기 위해서 어떤 걸 중점적으로 준비해야 하는지부터 포트폴리오&이력서 작성법 등 다양한 질문들을 받고 답변을 드립니다. 참여하셔서 다양한 정보 얻고 가시면 좋을 것 같네요😁

 

참여코드 : 456456

https://open.kakao.com/o/gVHZP8dg

 

비전공 개발자 취업 준비방(질문&답변)

#비전공 #개발자 #취업 #멘토링 #부트캠프 #국비지원 #백엔드 #프론트엔드 #중소기업 #중견기업 #자바 #Java #sql

open.kakao.com

 

 

 

관련 포스팅

* [ Java 국비지원 비전공자 출신 취업준비 및 후기 ]

* [ Java 국비지원 솔직 후기 ]

* [ 웹 프로젝트 기획하는 방법 총 정리 ]

반응형