본문 바로가기

전체 글

(172)
2021년 하반기 CJ 올리브네트웍스 면접 후기 면접을 본게 까마득한데.. 누군가에게 도움이 될까 싶어 기억을 더듬으며 후기를 적어본다 ㅎㅎ 면접 준비 할 당시에는 후기 하나하나가 빛 같았다는,,, 일단 나는 CJ 올리브네트웍스의 SI Project Engineer 부문에 지원을 했었고, 1차와 2차 면접을 봤다. 1차 면접은 메타버스 환경인 게더타운에서 진행을 했는데 생소해서 기억에 많이 남았다. (팁을 주자면 Z버튼으로 춤출 수 있음 ^___^) 게더타운 들어갈 때 캐릭터 옷 입히는데 이것까지 신경썼던 기억이.. 단정하게 입으려고 노력했다^^; 안그래도 되는데ㅋㅋㅋㅋㅋㅋ 2:2로 진행됐었고, 면접관 분들이 정말 젊으셨고.. 여타 다른 화상면접과 달리 얼굴이 작게 나와서 덜 떨렸다 ㅎㅎ 질문은 지원동기, 프로젝트, 갈등 경험, 강점, 회사의 관심도,..
[HTTP] URI와 웹 브라우저 요청 흐름 URI (Uniform Resource Identifier) "URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다." URI 단어 뜻 Uniform : 리소스 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것 (제한 없음) Identifier : 다른 항목과 구분하는데 필요한 정보 URL, URN 단어 뜻 URL - Locator : 리소스가 있는 위치를 지정 URN - Name : 리소스에 이름을 부여 위치는 변할 수 있지만, 이름은 변하지 않는다. URN의 예시로 어떤 책의 isbn이 있다. URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않았다. URI가 URL과 URN을 포함하고 있기 때문에 URI를 URL로 말..
[알고리즘] 백준 14719 빗물 / 자바 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 나름의 규칙성(?)을 찾아서 map을 모두 탐색 하면서 계산했다. map에 블록을 1로 저장해놓고, 행을 차례대로 탐색했다. 여기서 블록으로 저장된 1과 빈공간 0이 연속되고 + 블록을 다시 만날 때까지 while문을 돌았을 때, 빗물은 고일 수 있다. 블록에서 시작해 블록을 다시 만나는 그 사이의 0 개수가 빗물의 양이다. 벽을 만나지 못하고 W 범위를 넘어가면 더하지 않고 넘..
[알고리즘] 정렬 알고리즘 총 정리 Bubble sort (거품 정렬) n개의 원소를 가진 배열을 정렬할 때, 인접한 두 개의 데이터를 비교해가면서 정렬을 진행하는 방식 가장 큰 값을 배열의 맨 끝에다 이동시키면서 정렬 두개의 중첩된 for문을 이용해 정렬 swap을 많이 하기 때문에 삽입 정렬과 선택 정렬보다 시간이 오래걸린다. Selection Sort (선택 정렬) 주어진 데이터 중 최소값을 찾고, 맨 앞자리와 바꿔준다. 최소값을 찾고 맨 앞자리+1 인덱스와 바꿔준다... 반복 삽입 정렬 (Insertion Sort) 두번째 인덱스부터 시작해서 해당 인덱스(key 값) 앞에 있는 데이터들과 비교해 key 값보다 작은 데이터를 만나면 그 뒤에 넣는다. 장점 거의 정렬 된 경우 매우 효율적이다. 최선의 경우 O(N)의 시간복잡도를 갖는다..
[Spring] IoC 컨테이너 컨테이너란? 컨테이너는 보통 인스턴스의 생명주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것이다. 즉 컨테이너란 작성한 코드의 처리과정을 위임받은 독립적인 존재라고 생각하면 된다. 컨테이너는 적절한 설정만 되어있다면 누구의 도움없이도 프로그래머가 작성한 코드를 스스로 참조한 뒤 알아서 객체의 생성과 소멸을 컨트롤한다. 스프링 컨테이너는 스프링 프레임워크의 핵심부에 위치하여, DI(Dependency Injection)을 이용해 애플리케이션을 구성하는 컴포넌트들을 관리한다. 스프링 컨테이너의 종류 빈팩토리 BeanFactory DI의 기본사항을 제공하는 가장 단순한 컨테이너이고, 빈을 생성하고 분배하는 책임을 지는 클래스이다. Bean이란? Spring이 생명주기를 관리하는 객체 ..
[Spring] DI (Dependency Indection), 결합도 결합도와 인터페이스 결합도란 하나의 클래스가 다른 클래스와 얼마나 많이 연결되어 있는지를 나타내는 것! 클래스간의 연결이 많다면 하나의 수정을 위해 많은 클래스를 수정해야 할것이다. 스프링의 사용목적은 클래스간의 결합도를 낮추는 것이다. 예시를 들어본다면, public class HelloEn { public void hello() { System.out.println("hello"); } } public class HelloKr { public void hello() { System.out.println("안녕"); } } public class Main { public static void main(String[] args) { HelloEn en = new HelloEn(); en.hello(); ..
[HTTP] 인터넷 네트워크 인터넷 통신에 필요한 것들 IP (Internet Protocol) TCP, UDP PORT DNS IP(인터넷 프로토콜) 복잡한 인터넷 망에서 컴퓨터 둘은 어떻게 통신할까? 이를 위한 규칙으로 인터넷 프로토콜이란 규칙이 있다. 인터넷 프로토콜의 역할은 지정한 IP주소에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 IP 패킷은 출발지 IP, 목적지 IP, 전송 데이터 등의 정보를 담고 있다. IP 프로토콜의 한계는 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송함 비신뢰성 중간에 패킷이 사라지는 문제 패킷이 순서대로 오지 않는 문제 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일때의 문제 IP 프로토콜만으로는 이런 문제들을 해결할 수 ..
[알고리즘] 백준 21608 상어 초등학교 / 자바 https://www.acmicpc.net/problem/21608 import java.util.*; import java.io.*; public class Main_상어초등학교 { static int N, map[][], empty[][], num[], like[][]; static ArrayList list; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextTo..
[알고리즘] 백준 17144 미세먼지 안녕! / 자바 https://www.acmicpc.net/problem/17144 import java.util.*; import java.io.*; public class Main_미세먼지안녕 { static int R, C, T, map[][]; static int[] dx1 = {-1, 0, 1, 0}, dy1 = {0, 1, 0, -1}; //반시계방향 이동 static int[] dx2 = {1, 0, -1, 0}, dy2 = {0, 1, 0, -1}; //시계방향 이동 static ArrayList airCleaner; //공기청정기 x좌표 static ArrayList loc; //먼지 정보 리스트 public static void main(String[] args) throws IOException { ..
백준 9996 한국이 그리울 땐 서버에 접속하지 / 자바 https://www.acmicpc.net/problem/9996 9996번: 한국이 그리울 땐 서버에 접속하지 총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다. www.acmicpc.net import java.io.*; public class Main_한국이그리울땐 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt..