취준 과정

[네트워크] REST / REST API / RESTful 개념 및 특징

1-1 REST REST의 개념 "Represntational State Transfer"의 약자 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미. 자원: 해당 소프트웨어가 관리하는 모든 것. 상태 전달: JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적. 월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식 REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일임. REST는 네트워크 상에서 클라이언트와 서버 사이의 통신 방식 중 하나. HTTP URI를 통해 자원을 명시하고 HTTP Method(GET, POST, PUT,..

2021.08.19 게시됨

취준 과정

[SW 기술 면접] JAVA 편

소켓 통신과 HTTP 통신의 차이점? http 통신은 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신입니다. 소캣 통신은 서버와 클라이언트가 계속 연결을 유지하는 양방향 통신으로 실시간으로 데이터를 주고받는 상황에 사용됩니다. 가비지 컬렉터에 대해 설명해보세요. JVM에서 제공하는 기능으로 시스템에서 더이상 사용하지 않는 동적 할당된 메모리 블럭을 찾아 자동으로 사용 가능한 자원으로 회수하는 것으로 힙 영역을 스캔하여 참조되어 있지 않은 객체를 제거하는 방식으로 작동합니다. 멀티 쓰레드와 멀티 프로세스의 차이점? 프로세스는 운영체제로부터 시스템 자원을 할당받는 작업의 단위로 실행되는 프로그램을 의미하고 최소 1개의 스레드(메인 스레드)를 가지고 있다. 쓰레드는 프로세스 내에서 실행되는 하..

2021.08.17 게시됨

[Node.js] Express 프레임워크 + MySQL 연동해서 RESTful API 서버 구축 방법 (샘플 데이터로 CRUD HTTP Request 테스트까지) 포스팅 썸네일 이미지

Tools/Node.js

[Node.js] Express 프레임워크 + MySQL 연동해서 RESTful API 서버 구축 방법 (샘플 데이터로 CRUD HTTP Request 테스트까지)

👾 개요 Node.js의 Express 프레임 워크로 MySQL에 연동해서 서버를 구축해서 사용해 본 경험이 있는데 복습할 겸 간단하게 다시 구축해봤다. model, controller, routes로 구조화해서 설계해서 이전에 사용했던 것보다 구조가 복잡하긴 했다. (예전에 했을땐 app.js에 다 때려넣었다.. ㅎ) CRUD를 실행할 route를 정의한 후, RESTful API가 정상 작동하는지 테스트를 하기 위해 postman을 설치해서 테스트해봤다. 구축 방법은 다음과 같다. 1. Express 웹 서버 실행. 2. MySQL 데이터베이스 Configuration 추가. 3. 'Customer'라는 샘플 모델 생성 후 컨트롤러 작성. 4. CRUD 작업을 처리하기 위한 routes를 정의: Me..

2021.07.18 게시됨

[SW 기술 면접] 네트워크(전산 기본, TCP/UDP, HTTP, 웹, Spring) 포스팅 썸네일 이미지

취준 과정

[SW 기술 면접] 네트워크(전산 기본, TCP/UDP, HTTP, 웹, Spring)

📌 전산 기본 🔹 OST 7계층에 대해서 설명해 주세요. OSI 7 계층은 통신 접속에서 완료까지의 과정을 7단계로 정의한 국제 통신 표준 규약입니다. 하위 계층: 물리 / 데이터링크 / 네트워크, 상위 계층: 전송 / 세션 / 표현 / 응용 물리 계층은 전송하는데 필요한 기능을 제공하고 장비로는 통신 케이블과 허브가 존재. 데이터 링크 계층은 송수신을 확인하고, MAC Address를 가지고 통신하며 장비로는 브릿지와 스위치가 존재. 네트워크 계층은 패킷을 네트워크 간의 IP를 통하여 데이터를 전달하고 경로 설정, 트레픽 제어 등을 수행합니다. 장비로는 라우터. 전송 계층은 상위 3계층과 하위 3계층의 인터페이스를 담당하고 두 호스트 시스템으로부터 발생하는 데이터의 흐름을 제공합니다. 세션 계층은 통신..

2021.06.09 게시됨

[SW 기술 면접] 웹, JAVA 관련 Part 포스팅 썸네일 이미지

취준 과정

[SW 기술 면접] 웹, JAVA 관련 Part

📌 MVC 패턴 Model, View, Controller 의 약자. 개발할 때 3가지 형태로 역할을 나누어 개발하는 방법론, 비즈니스 처리 로직과 사용자 인터페이스 요소들을 분리시켜서 서로 영향없이 개발하기 수월하다는 장점이 있다. Model: 처리되는 알고리즘, DB와의 상호작용, 데이터 등 어플리케이션의 내부 로직을 처리하기 위한 역할. Controller: 모델이 어떻게 처리할 지를 알려주는 역할. 화면에서 사용자의 요청을 받아서 처리하는 부분으로 요청 내용을 Model과 View 에 업데이트 요청을 하게 됨. Model과 View가 각각 무엇을 해야할 지 알고 있고 통제함. View: 최종 사용자에게 보여주는 역할. 사용자 인터페이스 내의 구성요소들을 표현. (사용자에게 보여지는 화면) 📌 JA..

2021.06.08 게시됨

[Spring] Intellij로 Spring MVC Web 프로젝트 생성 방법 (Tomcat 서버, Log4j, Model and View 객체 설정) 포스팅 썸네일 이미지

Tools/Spring

[Spring] Intellij로 Spring MVC Web 프로젝트 생성 방법 (Tomcat 서버, Log4j, Model and View 객체 설정)

👾 개발 환경 - 운영체제: macOS BigSur - 도구: IntelliJ IDEA ULTIMATE (2020.3 ver) - 프레임워크: Spring + Maven - 데이터베이스: Oracle - 서버: Tomcat 1️⃣ 프로젝트 생성 (1) 'New Project' → 'Maven' 프로젝트 선택 → 'Create from archetype' 항목 체크 → 'webapp' 항목 체크 후 확인 (2) 프로젝트 이름 > 사용할 Maven 지정 후 Finish. 생성 후 pom.xml 이 자동으로 생성된다. (3) main/java, resource 폴더가 생성이 안돼있어서 main 폴더 내에 java 디렉토리/resource 디렉토리를 추가했다. 디렉토리 추가를 클릭하면 Maven Source D..

2021.06.04 게시됨

알고리즘/그리디

[그리디] 1이 될 때까지

난이도 ●○○ / 시간 제한 1초 / 메모리제한 128MB / 기출 2018 E 기업 알고리즘 대회 어떤 수 N이 1이 될때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두 번째 연산은 N이 K로 나누어 떨어질 때만 선택할 수 있다. N에서 1을 뺀다. N을 K로 나눈다. 예를 들어, N이 17, K가 4라고 가정하자. 이 때 1번의 과정을 한 번 수행하면 N은 16이 된다. 이후 2번의 과정을 두 번 수행하면 N은 1이 된다. 결과적으로 전체 과정을 실행한 횟수는 3이 된다. 이는 N을 1로 만드는 최소 횟수이다. N과 K가 주어질 때 N이 1이 될 때 까지 1번 혹은 2번의 과정을 수행해야 하는 최소 횟수를 구하는 프로그램을 작성하시오. 입력 조건 첫째 줄에 N 과 K가 ..

2021.05.27 게시됨

[그리디] 숫자 카드 게임 포스팅 썸네일 이미지

알고리즘/그리디

[그리디] 숫자 카드 게임

난이도 ●○○ / 시간 제한 1초 / 메모리제한 128MB / 기출 2019 국가 교육기관 코딩 테스트 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다. 숫자가 쓰인 카드들이 N x M 형태로 놓여있다. 이때 N은 행의 개수를 의미하여 M은 열의 개수를 의미한다. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 그 다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다. 따라서, 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑을 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다. 여기서 카드를..

2021.05.27 게시됨

알고리즘/그리디

[그리디] 큰 수의 법칙

난이도 ●○○ / 풀이시간 30분 / 시간 제한 1초 / 메모리제한 128MB / 기출 2019 국가 교육기관 코딩 테스트 동분이는 본인만의 방식으로 '큰 수의 법칙'을 다르게 사용하고 있다. 동빈이는 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없는 것이 이 법칙의 특징이다. 예를 들어 순서대로 2, 4, 5, 4, 6으로 이루어진 배열이 있을 때 M이 8이고, K가 3이라고 가정하자. 이 경우 특정한 인덱스의 수가 연속해서 세 번까지만 더해질 수 있으므로 큰 수의 법칙에 따른 결과는 6 + 6 + 6 + 5 + 6 + 6+ 6 + 5 인 46이 된다..

2021.05.25 게시됨

알고리즘/그리디

[알고리즘 기초] 그리디

현재 상황에서 지금 당장 좋은 것만 고르는 방법. 매 순간 가장 좋아 보이는 것을 선택하고 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않음. 코테에서 그리디 알고리즘 문제 유형은 사전에 외우고 있지 않아도 풀 수 있는 가능성이 높음. (다익스트라 알고리즘 제외) 따라서 많은 유형을 접해보고 문제를 풀어보며 훈련을 해야 함. 보통 창의력(문제를 풀기위한 최소한의 아이디어를 떠올릴 수 있는 능력)을 요구. 단순히 현재 상황에서 가장 좋아 보이는 것만을 선택해도 문제를 풀 수 있는지를 파악할 수 있어야 함. 기준에 따라 좋은 것을 선택하는 알고리즘 이므로 문제에서 '가장 큰 순서대로', '가장 작은 순서대로'와 같은 기준을 알게 모르게 제시해 줌. 대체로 이 기준은 정렬 알고리즘을 사용했을 때 만족시..

2021.05.25 게시됨