전체 글 422

Chapter 01. 사전 지식과 SPA

사전 지식 HTML / CSS JavaScript(ES56) DOM 프로그래밍 JSX/TSX Typescript NodeJS - 모듈, npm이해하기 SPA(Single Page Application) 페이지 요청은 한 번만 하고 그 다음부터는 데이터만 요청하는 방식으로 바뀌었다. Vue.js는 Angular.js의 장점만 가지고 나왔다. 여러 기능도 추가했다. 예전에는 JavaScript와 Ajax 없이 HTML 기능만을 이용해서 이뤄졌다. 클라이언트가 요청할 때마다 서버가 새로운 페이지를 보낸다. 서버와 클라이언트 모두 비효율적이다. 최근에는 JavaScript와 Ajax까지 사용한다. 서버는 클라이언트에 맨 처음 요청에만 페이지를 보내고 그 다음부터는 필요한 데이터만 보내준다. 사용성이 좋아진다. ..

FrontEnd/Vue.js 3 2023.03.07

Chapter 01. 자바스크립트 기초

1. 자바스크립트란? 브라우저 위에서 동작하는 인터프리터 방식의 언어이다. 현재는 Node.js 라는 런타임 환경이 생겼기 때문에 서버에서도 자바스크립트를 사용 가능하다. Python, Java는 어떤 파일들을 다운 받아야 환경을 구축할 수 있는 것과는 다르게 JavaScript는 다운 받을 필요가 없다. JavaScript는 브라우저 위에서 바로 동작할 수 있기 때문에 브라우저 위에서 바로 테스트 가능하다. html은 문서이다. 웹 브라우저( ex) 크롬)을 통해 html, css, JavaScript 페이지를 열어볼 수 있다. xlsx 파일을 엑셀, 한컴, 구글 스프레드 시트로 열 수 있다. JavaScript는 html과 관련있다. html에 기능을 넣어준다. html은 웹 브라우저에서 동작한다. ..

Chapter 16 네트워킹(Networking)

1. 네트워킹(Networking) 네트워킹(Networking): 두 대 이상의 컴퓨터를 케이블로 연결해서 네트워크를 구성하는 것을 말한다. 초기의 네트워크는 몇 대의 컴퓨터로 구성됐으나 현재는 셀 수 없을 정도로 많은 컴퓨터가 인터넷이라는 하나의 거대한 네트워크를 구성하고 있으며 인터넷을 통해 다양하고 방대한 양의 데이터를 공유 가능하다. 자바의 java.net 패키지를 이용하면 네트워크 애플리케이션의 데이터 통신 부분을 쉽게 작성 가능 1.1 클라이언트(client)와 서버(server) 클라이언트와 서버는 컴퓨터간의 관계를 역할로 구분하는 개념이다. 서버(server): 서비스를 제공하는 컴퓨터 보통적으로 서버는 다수의 클라이언트에게 서비스를 제공하기 때문에 고사양의 하드웨어를 갖춘 컴퓨터이다. ..

Java/Java의 정석 2023.03.02

Chapter 13 스레드(Thread)

1. 프로세스(Process)와 스레드(Thread) Def) 프로세스(Process): 실행 중인 프로그램이다. 프로그램을 실행하면 OS로부터 필요한 자원(메모리)을 할당 받아서 프로세스가 된다. 프로세스는 프로그램을 수행하기 위해 필요한 데이터, 메모리 등의 자원 그리고 스레드로 구성된다. Def) 여기서 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것을 스레드라고 한다. 다시 말해 스레드는 프로세스의 실행 단위를 말한다. 스레드를 경량 프로세스(LWP, Light Weight Process)라고도 부른다. 프로세스는 하나 이상의 스레드를 포함한다. 프로세스는 공장, 스레드는 작업을 처리하는 일꾼이라고 이해할 수 있다. 멀티스레드 프로세스(multi threaded process): 둘 이상의 ..

Java/Java의 정석 2023.03.01

[행동 패턴] 커맨드 패턴(Command Pattern, 명령 패턴)

Command Pattern(커맨드 패턴, 명령 패턴) 요청을 요청에 대한 모든 정보가 포함된 독립 실행형 객체로 변환하는 행동 디자인 패턴이다. 명령이 객체화되어 있다. Command 클래스 안에는 출력할 수 있는 메서드가 포함돼있다. execute() 하면 해당하는 Command의 멤버 변수의 string 값을 출력하도록 한다. 다양한 요청들이 있는 메서드들을 인수화할 수 있도록하면 요청의 실행을 지연 또는 대기열에 넣을 수 있도록 하고 또 실행 취소할 수 있도록 작업을 지원할 수 있도록 한다. 예제 (1) Command public interface Command extends Comparable{ void execute(); } 명령을 Queue에 넣고 실행한다. public static void..

[행동 패턴] 템플릿 메서드(Template Method)

템플릿 메서드(Template Method) Def) 알고리즘의 구조를 메소드에 정의하고 하위 클래스에서 알고리즘 구조의 변경없이 알고리즘을 재정의하는 패턴 부모 클래스에서 알고리즘의 골격을 정의하지만 해당 알고리즘의 구조를 변경하지 않고 자식 클래스들이 알고리즘의 특정 단계를 오버라이드할 수 있도록 하는 행동 디자인 패턴을 말한다. 사용하는 경우 구현하려는 알고리즘이 일정한 프로세스가 있다. 여러 단계가 있다. 구현하려는 알고리즘이 변경 가능성이 있다. 템플릿 메서드 사용 방법 알고리즘을 여러 단계로 나눈다. 나눠진 알고리즘의 단계를 메소드로 선언한다. 알고리즘을 수행한 템플릿 메소드를 만든다. 하위 클래스에서 나눠진 메소드들을 오버라이드한다. 기본 설계 추상 클래스에 step1, 2, 3 을 나눠서 ..

[행동 패턴] 전략 패턴(Strategy Pattern)

인터페이스(Interface) 키보드나 디스플레이 따위처럼 사람과 컴퓨터를 연결하는 장치 기능에 대한 선언과 기능과 구현을 분리한다. 기능을 사용하는 통로 어떤 기능에 접근하는 접근점을 제공한다. 델리게이트(Delegate) 위임하다. 떠넘긴다는 뜻 두 객체간의 관계에서 어떤 객체가 기능을 수행할 때, 복잡한 기능을 개발하는 책임을 다른 객체로 떠넘긴다. 전략 패턴(스트레지티 패턴, Strategy Pattern) Def) 여러 알고리즘을 하나의 추상적인 접근점(인터페이스)을 만들어서 접근 점에서 서로 교환 가능하도록 하는 패턴을 말한다. 의도: 알고리즘들의 패밀리를 정의하고 각 패밀리를 별도의 클래스에 넣은 다음 그들의 객체들을 상호교환하도록 하는 행동 디자인 패턴을 말한다. 해결책: 특정 작업을 다양..

[개요] 디자인패턴(Design Pattern)이란?

소프트웨어 디자인패턴(software design pattern)이란? 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바뀔 수 있는 완성된 디자인은 아니고 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는 데 쓰이는 서술이나 템플릿이다. 개발자가 애플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데 쓰이는 형식화된 가장 좋은 관행이다. 디자인 패턴은 설계자들이 올바른 설계를 빨리 만들 수 있도록 도와준다. 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션 같은 것이다. 「GoF의 디자인패턴」에서는 아래 세 가지로 구분한다. 복잡성, 상세도 및 설계 중인 전체 시스템에..

Chapter 10.01 실행 계획

대이터베이스의 주 목적: 많은 데이터를 안전하게 보관하고 빠르게 조회한다. 이러한 목적을 위해 옵티마이저가 사용자 쿼리가 최적으로 처리되도록 실행 계획을 수립할 수 있어야한다. EXPLAIN 명령으로 옵티마이저가 수립한 실행 계획을 확인할 수 있다. 10.1 통계 정보 MySQL 5.7 버전까지는 테이블과 인덱스에 대한 개괄적인 정보를 가지고 실행 계획을 수립했다. 그런데 이는 테이블 칼럼의 값이 어떻게 분포되는지 정보가 없으모로 실행 계획의 정확도가 떨어지는 경우가 많았다. 그래서 8.0 버전부터는 인덱스되지 않은 칼럼들에 대해서도 데이터 분포도를 수진해서 저장하는 히스토그램(Histogram) 정보가 도입됐다. 10.1.1 테이블 및 인덱스 통계 정보 비용 기반 최적화에서 가장 중요한 것은 통계 정보..

7. 팀 프로젝트 관련 및 인성 질문

팀 프로젝트 프로젝트에 대한 소개 인원, 담당 업무 조는 어떻게 편성이 됐는가? 담당 업무를 맡은 이유 주제는 어떻게 정했는가? 테이블은 몇 개인가? 칠판에 ERD 그려 보기 테이블 조인은 몇 개 까지 해봤는지? 프로젝트에서 예외 처리 예외 처리 클래스 구현 1) enum형태로 MemberErrorCode를 만든다. 2) MemberException: RuntimeException을 상속하는 예외 클래스, MemberErrorCode 하나의 멤버변수만 있다. 3) MemberErrorResponse: String message와 MemberErrorCode로 이뤄짐, Response을 상속한다. Controller 클래스에서 반환형으로 지정해서 프론트한테 HttpStatus와 함께 보내주는 역할이다. 4..