취업준비/기술면접
-
[기술면접] 신입 개발자 Spring 예상 면접 질문취업준비/기술면접 2022. 11. 6. 22:58
📑 WS(Web Server)와 WAS 차이 📌 Web server : 웹서버는 소프트웨어랑 하드웨어로 구분되는데 하드웨어는 web 서버가 설치되어 있는 컴퓨터를 의미하고, 소프트웨어는 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공하는 컴퓨터 프로그램을 의미한다. 정적인 컨텐츠를 제공하면 ,WAS 거치지 않고 자원 제공. 빠르게 제공 가능. 📌 WAS (Web Application Server) : WAS는 DB조회나 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application Server이다. HTTP를 통해 컴퓨터 장치에 애플리케이션을 수행해주는 미들웨어이다. JSP, SERVLET 등 구동 환경을 제공한다. 더보기 static : web serve..
-
[기술면접 sw] 아키텍처 패턴 vs 디자인 패턴 개념과 차이취업준비/기술면접 2022. 11. 6. 13:00
Spring MVC 패턴을 사용해 프로젝트를 진행했는데, 면접 중 Spring MVC 패턴을 왜 사용했는가 특징이 뭔가?에 대한 질문을 받았었고, 추가적으로 디자인패턴 관련 질문들을 종종 봤어서 이를 정리해볼까 한다. 정처기 공부하면서 디자인 패턴 종류 엄청 외웠었는데,, 다시 한 번 되새겨보자. 📑 소프트웨어 아키텍처란? : 소프트웨어를 구성하는 구성요소(모듈/컴포넌트) 간의 관례를 관리하는 시스템의 구조이다. 소프트웨어 아키텍처의 기본 원리는 다음과 같다. 📌 1. 모듈화 : 시스템의 기능들을 모듈 단위로 나눈 것. 이때 모듈 개수는 적당한 것이 좋다. 너무 많을 경우 통합 비용이, 너무 적을 경우 모듈 하나의 개발 비용이 많이 들게 된다. 📌 2. 추상화 : 전체적이고 포괄적인 개념 설계 -< 차례..
-
[기술면접 Spring] Filter, Interceptor, AOP 차이점취업준비/기술면접 2022. 9. 20. 11:46
자바 웹 개발을 하다보면 공통적으로 처리해야 할 업무들이 많다. 예를 들어 로그인 관련(세션체크)처리, 권한체크, PC와 모바일웹의 분기처리, 로그, 페이지 인코딩 변환 등등. 공통 관련된 코드를 모든 페이지 마다 작성 해야한다면 중복된 코드가 많아지게 되고 프로젝트 단위가 커질수록 서버에 부하를 줄 수 있으며 소스 관리도 되지 않는다. 따라서, 공통 부분은 빼서 관리하는 것이 좋다. 공통처리를 위해 활용할 수 있는 방법이 3가지가 있다. Filter, Interceptor, AOP의 흐름 Interceptor와 Filter는 Servlet 단위에서 실행된다. 반면 AOP는 메소드 앞에 proxy패턴의 형태로 실행된다. 요청이 들어오면 Filter -> Interceptor -> AOP ->Interce..
-
[기술면접 JAVA] 캡슐화와 은닉화의 차이점취업준비/기술면접 2022. 9. 19. 19:59
캡슐화(Encapsulation) 캡슐화는 하나의 객체에 대해 그 객체가 특정한 목적을 위한 필요한 변수나 메서드를 하나로 묶는 것을 의미한다. 클래스를 만들 때 이 클래스에서 만들어진 객체가 특정한 목적을 잘 수행할 수 있도록 사용해야 할 변수와 그 변수를 가지고 특정한 액션 즉 메서드를 관련성 있게 클래스에 구성해야 한다. 그렇다면 왜 묶어야하고 숨겨야 하는 걸까? 1. 묶음으로 인해 프로그램을 바라보는 단위가 커진다. : 클래스 내부에 여러 함수를 내포할 수 있기 때문에 프로그램 소스 코드를 바라보는 단위가 커지며, 프로그램 관리가 수월해진다. 2. 내부를 숨김으로써 내부를 좀 더 자유롭게 변경할 수 있다. : 내부의 데이터나 함수를 외부에서 참조하지 못하도록 차단하는 개념을 정보 은닉(Inform..
-
[기술면접 OS] 프로세스와 스레드의 개념과 차이점취업준비/기술면접 2022. 9. 19. 19:23
프로세스(process)란 프로세스란 간단히 말해 '실행 중인 프로그램(program)'이다. 프로그램을 실행하면 OS로 부터 실행에 필요한 자원(메모리)을 할당 받아 프로세스가 된다. 즉) 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말하며, 종종 스케줄링의 대상이 되는 작업(task)라는 용어와 거의 같은 의미로 쓰인다. 프로세스 = 프로그램 + 프로세스제어블록이며 프로세스는 각각 독립된 메모리 영역 (Code, Data, Stack , Heap의 구조)을 할당받는다. 스레드(thread)란 쓰레드는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 즉 쓰레드는 프로세스 내에서 각각 Stack만 따로 할당받고 Code, Data, Heap 영역은 공유한다. 스레드..
-
[기술면접] 신입 개발자 JAVA 예상 면접 질문취업준비/기술면접 2022. 9. 19. 18:30
● 자바 장점 - 자바 가상머신 JVM(Java Virtual Machine)만 설치하면 컴퓨터의 운영체제와 상관없이 작동함으로 os에 독립적이다. - 가비지 컬렉터를 통해 메모리 관리가 가능하다. - 멀티 스레드 프로그래밍을 지원해 한 개의 프로세스 내부에서 여러 개의 일을 동시에 처리할 수 있으며 동적 로딩을 지원한다. apache, spring 등 자바를 지원하는 수많은 오픈 소스 프로젝트가 있다. ● 자바 가상머신 JVM이란? : 자바 프로그램 실행환경을 만들어주는 소프트웨어이다. Java는 어떠한 플랫폼에 영향을 받지 않는다. JVM을 사용하면 하나의 바이트코드(.class)로 모든 플랫폼에서 동작하도록 할 수 있다. ● JVM 실행 과정 1. 자바 컴파일러(javac)가 자바 소스 코드(.ja..
-
[기술면접 JAVA] 클래스변수와 인스턴스변수 차이점, static 키워드취업준비/기술면접 2022. 9. 13. 16:49
면접 예상 질문지를 살펴보며 클래스변수, 인스턴스변수, 지역변수의 차이점 static 키워드에 대해 다시 한 번 정리해보는 시간을 가져볼까 한다. 선언 위치에 따른 변수의 종류 변수는 클래스 변수, 인스턴스 변수, 지역변수 모두 3종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 '변수의 선언 위치' 이므로 변수의 종류를 파악하기 위해서 변수가 어느 영역에 선언되었는지를 확인하는 것이 중요하다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 분은 것을 클래스 변수, 붙지 않은 것을 인스턴스 변수라고 한다. 1. 인스턴스 변수(instance variable) : 클래스 영역에 선언되며, 인스턴스를 생성할 때 만들어진다. 그래서 인스턴스 변수(iv)의 값을 읽어 오거나 ..
-
[웹개발 기술면접] 모델1, 모델2와 MVC 패턴 알아보기취업준비/기술면접 2022. 9. 13. 12:21
스프링을 시작하면서 MVC 패턴에 대해 이해하는데 시간을 많이 투자했다. 개념을 보고 또보고 손으로 적어보니 조금씩 정리가되는 느낌이었다. 취준을 본격적으로 시작하면서 다시 한 번 개념들을 적어보며 정리해보려고 한다. 모델 1 구조 모델 1은 뷰와 로직을 모두 jsp 하나에서 처리하는 구조를 말한다.즉) JSP 페이지 내에 로직 처리를 위한 자바 코드가 출력을 위한 코드와 함께 섞여 삽입된다. 브라우저에서 요청이 들어오면 JSP 페이지는 자신이 직접 자바빈이나 따로 작성한 서비스 클래스를 이용해 작업을 처리하고, 그 처리한 정보를 클라이언트에 출력한다. 장점 단점 - 구조가 단순하여 익히기 쉽다. - 출력을 위한 뷰 코드와 로직을 처리하기 위한 자바 코드가 함께 섞이기 때문에 JSP 코드 자체가 복잡해진..