전체 글 123

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

오늘은 신입 개발자를 대상으로 한 면접 흐름과 예상질문 리스트를 주제로 포스팅하려 합니다. 주관적인 경험을 바탕으로 작성하는 부분들이 많기 때문에 참고만 해주세요😊 📗인사 관련 면접 대부분 개발 직군의 면접은 2:1이나 3:1로 면접을 진행합니다. 면접자들은 인사담당자, 개발 팀장, 임원들로 구성되며 각자 본인 업무에 해당하는 질문을 합니다. 제가 경험했던 면접들에서는 인사담당자님이 먼저 질문을 했습니다. Q. 오시는데 얼마큼 걸리세요? - 있는 그대로 말씀하시되, 만약 거리가 너무 멀다면 '1시간 조금 더 넘게 걸리는데 환승을 안 합니다'라는 긍정적인 멘트를 섞어주는게 좋을 것 같아요. 면접에 큰 영향을 끼치는 질문은 아니지만, 대게 처음 나오는 질문이기 때문에 좋은 인상을 남기는 게 좋습니다. 🌟Q...

국비지원&취업 2023.03.03

Java 알고리즘 모든 아나그램 찾기

오늘은 해쉬맵과 윈도우 미러링을 이용하여 주어진 단어 안에서 모든 아나그램을 찾는 문제를 풀어보려 합니다😄 개요 이번 문제의 핵심은 저번 포스팅과 마찬가지로 해쉬맵을 사용하는 방법과 윈도우 미러링 방식을 사용하여 시간복잡도를 해결하는 것이 관건일 것 같네요😀 Setting📙 public class AllAnagram { public static void main(String[] args) { AllAnagram T = new AllAnagram(); Scanner sc = new Scanner(System.in); String a = sc.next(); String b = sc.next(); System.out.println(T.solution(a,b)); } } 입력값으로는 두 단어가 주어집니다. 첫 ..

Algorithms 2023.02.18

Java 알고리즘 아나그램(해쉬) 풀이

오늘은 해쉬맵을 이용하여 주어지는 두 단어가 아나그램인지 판별하는 문제를 풀어보려고 합니다. 아나그램은 두 단어가 알파벳 나열 순서가 달라고 구성이 같을 때의 경우를 의미합니다😀 개요 이번 문제의 핵심은 서두에서 언급했듯이 해쉬맵의 기능들을 사용하는 것이 될 것 같네요😊 Setting📙 public class Anagram { public static void main(String[] args) { Anagram T = new Anagram(); Scanner sc = new Scanner(System.in); String a = sc.next(); String b = sc.next(); System.out.println(T.solution(a,b)); } } 입력값은 문제에 나와있는 것 처럼 두 단어가..

Algorithms 2023.02.16

Java 알고리즘 격자판 봉우리 개수

오늘은 배열을 이용하여 격자판의 봉우리 개수를 구하는 문제를 풀어보려고 합니다😀 개요 이번 문제는 이중 배열을 이용하는 방법과 각 격자에서 상하좌우를 확인하는 방법 총 2가지가 핵심이 될 것 같네요😊 Setting📙 public class Peak { public static void main(String[] args) { Peak T = new Peak(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] arr = new int[n][n]; for(int i = 0; i < n; ++i){ for(int j = 0; j < n; ++j){ arr[i][j] = sc.nextInt(); } } System.out.println(T...

Algorithms 2023.02.06

자바 ORM 표준 JPA 프로그래밍 - JPQL

이전 포스팅에서는 값 타입에 대해 알아보았다. 이번 포스팅은 객체지향 쿼리 언어 중에 JPA의 기본인 JPQL에 대한 포스팅을 진행하려 한다😊 개요 JPQL은 엔티티 객체를 대상으로 쿼리 하는 객체지향 쿼리 언어다. SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는 특징을 가지고 있다. 예제로 사용할 도메인 모델을 살펴보면 회원이 상품을 주문하는 다대다 관계임을 알 수 있다. 또한 Address는 임베디드 타입인데 이것은 값 타입으로 UML에서 스테레오 타입을 사용해 로 정의했다. ERD에서는 ORDERS 테이블에 포함되어 있다. 기본 문법과 쿼리 API📙 JPQL도 SQL과 비슷하게 SELECT, UPDATE, DELETE 문을 사용할 수 있다. 엔티티를 저장하는 INSERT문은 Entity..

Book Review 2023.01.17

Java 알고리즘 DFS 섬 개수 구하기

오늘은 DFS를 활용하여 입력받은 격자판에서 섬의 개수를 구하는 문제를 풀어보려고 합니다😊 개요 이번 문제의 핵심은 DFS 알고리즘 활용, 8가지 방향으로 이동하는 방법, 섬을 만났을 때 체크, 출발점 체크 총 4가지가 될 것 같네요😀 Setting📙 public class Island { static int result = 0, n; static int[] dx = {-1, -1, 0 ,1 ,1 ,1, 0, -1}; static int[] dy = {0 ,1 ,1 ,1, 0, -1, -1, -1}; public static void main(String[] args) { Island T = new Island(); Scanner sc = new Scanner(System.in); n = sc.nextI..

Algorithms 2023.01.16

Java 알고리즘 BFS 토마토 문제 풀이

오늘은 BFS를 활용하여 토마토 문제를 풀어보려 합니다. 토마토 문제는 근방에 익은 토마토가 있다면 하루가 지나 같이 익게 되고, 모든 토마토가 다 익을 때까지의 날짜 수를 구하는 문제입니다😄 개요 이 문제의 핵심은 BFS 알고리즘을 활용과 Queue의 원리, 여러 시작점에서 동시다발적으로 여러개의 토마토가 익는 부분, 상자의 상하좌우 확인 방법, 익은 토마토를 체크 총 5가지가 되겠네요😀 TomatoPoint📙 class TomatoPoint { public int x,y; TomatoPoint(int x, int y) { this.x = x; this.y = y; } } TomatoPoint 클래스는 상자판에서 행,열을 입력할 때 사용합니다. 근방에 익은 토마토에 의해 해당 토마토가 익을 때 큐에 쌓..

Algorithms 2023.01.13

자바 ORM 표준 JPA 프로그래밍 - 값 타입

이전 포스팅에서는 JPA의 프록시와 연관관계에 대해 알아보았다. 이번 포스팅에서는 JPA의 데이터 타입에 대해 포스팅하려 한다😀 개요 JPA의 데이터 타입을 가장 크게 분류하면 엔티티 타입과 값 타입으로 나눌 수 있다. 엔티티 타입은 @Entity로 정의하는 객체이고, 값 타입은 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체를 말한다. 📌 엔티티 타입은 식별자를 통해 지속해서 추적할 수 있지만, 값 타입은 식별자가 없고 숫자나 문자같은 속성만 있으므로 추적할 수 없다. 쉽게 비유하면 엔티티 타입은 살아 있는 생물이고 값 타입은 단순한 수치 정보다. 기본값 타입📙 @Entity public class Member { @Id @GeneratedValue privat..

Book Review 2023.01.12

Java 알고리즘 BFS 미로 최단 경로 구하기

오늘은 BFS를 활용하여 미로의 최단 경로를 구해보는 문제를 풀어볼 예정입니다. 이전 포스팅에서 풀어 본 DFS를 활용한 미로 탐색과 풀이법이 유사하기 때문에 참고하면 좋을 듯하네요😊 개요 이 문제의 핵심은 BFS 알고리즘 활용과 Queue의 원리, 지나간 경로는 다시금 못 지나가게 막는 방법, 격자의 상하좌우 확인 총 4가지가 될 것 같아요. 한번 코드로 풀어볼까요? Point📙 class Point { public int x,y; Point(int x, int y) { this.x = x; this.y = y; } } Point 클래스는 격자판에서 x축, y축을 입력할 때 사용합니다. Queue에 지나간 격자를 넣거나 빼서 사용할 때 Point 클래스를 사용하여 현재 위치를 파악할 때 사용합니다. 자..

Algorithms 2023.01.12