이번에 이직 면접을 보면서 정리한 기술면접 질문리스트입니다.

구글링 시 나오는 신입 개발자 질문리스트를 참조한 게 많은 도움이 되었습니다.

답은 찬찬히 채워 넣는걸로 😂

 

본인 경력: 2년 (2022)

지원 포지션: 백엔드/풀스택

면접 시간: 30분~3시간 (평균 40분 내외)

 

JAVA

  1. Java 컴파일 과정
  2. Static의 의미, 장단점
  3. OOP (객체지향 프로그래밍)의 개념
  4. OOP의 4가지 특징 (추상화/캡슐화/상속/다형성) 💎💎💎
    - 오버로딩, 오버라이딩 질문이 가장 많았음
  5. OOD (객체지향 설계)의 5원칙 SOLID
  6. Java 8버전의 특징
  7. 접근 제어자 4가지 종류
  8. GC(가비지 컬랙션) 설명

SPRING

  1. Spring의 특징 💎💎
  2. Spring의 구동원리
  3. DispatcherServlet의 역할
  4. IOC(제어의 역전) 설명, 장단점
  5. DI(의존성 주입) 설명, 장단점
  6. AOP(관점지향 프로그래밍) 설명, 장단점 💎💎💎
  7. Spring과 Spring boot의 차이점
  8. Spring에서 사용해 본 어노테이션은?
  9. Spring Cloud 설명
  10. Spring Security 설명
  11. Spring MVC 패턴 설명

DATABASE

  1. 트랜잭션의 의미
  2. 트랜잭션의 4가지 특성 ACID
  3. Index 설명
  4. NoSql과 RDB의 차이점

NETWORK

  1. 브라우저에 URL을 입력했을 때 서버로 전달되는 과정
  2. HTTP와 HTTPS 프로토콜 차이점

ETC

  1. REST API Method의 특징 💎💎💎
  2. API 설계 해보세요. (손코딩)
  3. 쿠키와 세션의 차이점
  4. 웹서버와 WAS의 차이점
  5. Git과 SVN의 차이점
  6. 프레임워크와 라이브러리의 차이점
  7. 온프레미스 서버를 클라우드로 이전 시 진행 과정
  8. Rolling, Blue Green, Canary 배포 전략
  9. Java 외에 써 본 언어가 있나요?

 

골드는 금방 찍을 줄 알았는데 생각보다 오래 걸렸다.

처음에는 리트코드에서 자바로 문제를 풀었다.
그런데 PS도 초심자인데 영어문제라 이해하는데 한세월이 걸렸다 ㅋㅋ

백준+파이썬으로 바꿨는데 지금이면 리트코드도 할만하지 않을까?

파이썬을 사용하면서 자바 개발자인데 파이썬으로 풀어도 되나,

새로운 언어라 어렵지 않을까 했는데 바꾸기 잘한 선택이었다.
내장 라이브러리도 좋다보니 실버까진 쭉쭉 풀렸다. 
여기까진 알고리즘 공부보단 파이썬 문법에 익숙해지는 과정이라고 본다.

공부 안하고 무지성으로 풀면 이렇게 된다.


실버 2부터 시간초과 지옥에 빠졌다. 

문제 밑에 보면 힌트로 알고리즘 분류가 있다.
바로 문제풀이를 하지 않고 알고리즘을 검색해서 어떤 유형인지 찾아보고 풀었다.
그러다보면 이 문제는 무슨 알고리즘 쓰는구나 감이 온다.
최근에 알고리즘 책도 사서 틈틈이 읽고 있다.올해 안에 플레 후기를 올렸으면 좋겠다.

//console log
2021-07-08 19:10:10,656 DEBUG (comm.login.java:10).debug - ==>  Preparing: SELECT USER_ID, PASSWD FROM USER WHERE USER_ID = ? 
2021-07-08 19:10:10,656 DEBUG (comm.login.java:10).debug - ==> Parameters: admin(String)

intelliJ + spring + mysql 조합

쿼리를 콘솔에서 복사하려는데 쿼리와 파라미터가 분리되어 노출되었다.

예시처럼 짧은 쿼리는 복사해서 쓰면 되지만, 쿼리가 길고 파라미터가 많으면 그것도 힘들다.

찾아보니 mybatis 관련 plugin을 쓰면 도움이 된다고 한다.

 

내가 사용 중인 플러그인은 MybatisLogFormat으로 마켓플레이스에서 검색해보면 비슷한 기능의 플러그인이 있다.

 

 

사용방법은 preparing, parameters 부분을 모두 블록 처리하고 오른쪽 버튼 클릭 > mybatisLogFormat 클릭하면 파라미터가 포함된 쿼리를 복사할 수 있는 툴팁이 뜬다. 툴팁에서 copy를 클릭하면 클립보드에 복사된다.

정말 유용한 플러그인이다..

 

IntelliJ를 막 쓰게 됐는데 jsp 수정하고 새로고침하는데 반영이 안되고 서버를 재구동해야 반영되었다.

 

  1. 서버 Edit configrations 들어감
  2. Deployment > Deploy at the server startup 에서 Edit Artifact 클릭. (연필모양)
  3. war exploed > output directory 경로를 src/main/webapp으로 수정한다.

 

Several ports (8005, 80, 8009) required by Tomcat v8.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s). 

 

프로젝트를 실행하니 이미 사용중인 포트라 서버가 켜지지 않는다고 한다

 

1. 작업관리자에서 javaw.exe / tomcat.exe 을 끈다 -> 는 없음

2. 시작프로그램에 Apache Commons Daemon Service Manager프로그램을 찾는다

-> 해당 프로그램의 설치 폴더로 간다

 

3. 서비스가 실행되어있음 Stop하고 Startup type을 Disabled로 바꾸면 앞으로 수동으로 켜질일 없음

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
    <scope>provided</scope>
</dependency>

https://mvnrepository.com/artifact/org.projectlombok/lombok

1. 프로젝트의 pom.xml에 Lombok 의존성 주입

 

 

2. libraries > Maven Dependencies > lombok-1.18.10.jar의 경로를 확인한다

 

3.위의 경로로 가서 쉬프트+마우스 우클릭 >여기서 Power Shell창 열기 클릭;

java -jar lombok-1.18.10.jar 입력

(Power Shell 안될시 cmd에서 가능)

 

 

4. Install / Update 클릭 > Quit Installer 클릭

 

5. Eclipse가 켜져 있다면 재시작

 

 

이후 DTO(VO)에 @Data를 추가하면 Getter, Setter가 자동 생성된다.

 

-vm 
D:\dev\Java\jre1.8.0_221\bin\javaw.exe

 

eclipse.ini에 -vm추가했는데도 왜 에러뜨냐!! 하고 찾아보니 jre를 32버전으로 깔았다..

os와 같은 64로 재설치해서 해결

+ Recent posts