전체 글 134

10장. 클래스 - 자바스크립트 클린코드

프론트엔드에서 클래스란 모던 자바스크립트, ES6부터 객체 지향 프로그래밍을 위해 고안된 개념으로 프로토타입을 기반으로 한다. 클래스에 대해 간단하게 정리 해보자면, - 클래스틑 class 키워드를 사용하여 정의한다. - 클래스에서 정의할 수 있는 메서드는 constructor(생성자), 프로토타입 메서드, 정적 메서드가 있다. - 클래스는 인스턴스를 생성하기 위한 생성자 함수이며, new 연산자와 함께 호출된다. - 인스턴스는 클래스로부터 생성되는 객체이다. - constructor : 인스턴스를 생성하고 초기화하는 메서드이다. (최초로 정의하는 곳이라고 이해하자) - 프로토타입 메서드 : 인스턴스의 프로토타입에 존재하는 메서드. 인스턴스에서 상속받아 사용할 수 있다. - 정적 메서드 : 인스턴스 생성..

스프링부트 프로젝트 생성 및 환경세팅(22.11.16)

프로젝트 환경 - JAVA 11 - IDE : IntelliJ 1. https://start.spring.io/ 에 접속하여 프로젝트 생성 *What is Gradle, Maven? : 프로젝트에 필요한 플러그인, 라이브러리들을 설치하고 빌드하기까지의 과정을 편리하게 해주는 tool 이라고 보면 된다. (참고로 요즘 추세는 Gradle 이라고 한다..우리 회사는 아직까지는 Maven을 사용하고 있다...ㅎㅎ) Dependencies는 웹 프로젝트이므로 Spring Web과, HTML을 웹 브라우저에 띄울수 있도록 해주는 템플릿 엔진, Thymeleaf를 설치해주었다. Generate 버튼을 누르면, 압축파일이 다운로드 받아진다. 압축을 풀고, IDE로 해당 프로젝트를 연다. 2. 프로젝트 구조 보기 ㄴs..

Backend/SpringBoot 2022.11.16

[Github Action] 프론트 AWS S3+네이버 클라우드(ncloud) 연동 배포

Github Action 을 이용해서 프론트 레포지토리의 main에 push가 되면, build 후 build된 파일을 통째로 s3 버켓에 올리는 작업이다. 이를 네이버 클라우드에 연동된 S3 버켓에 올리는 작업을 진행한다. 네이버클라우드에 연동하는 방법은 아래 글에 자세히 잘 나와있다. https://deokisys.github.io/%EA%B8%B0%ED%83%80%EA%B0%9C%EB%B0%9C/2021/12/21/github-action%EA%B3%BC-ncloud.html 몇 가지 수정한 것만 정리해보자면 private 레포지토리여서 github token을 추가 aws access key 관련 정보는 github > security > deploy keys에서 설정 후 secret.를 이용해 ..

git 2022.11.14

7장. 오류 처리 - 자바스크립트 클린코드

예외를 사용하지 않을 경우 함수를 호출한 즉시 오류를 확인해야 하는 번거로움이 있다. 따라서, 오류가 발생하면 예외를 던지도록 코드를 짜는 것이 더 좋다. 그래야 논리와 오류 처리 코드가 섞이지 않는다. Try - Catch - Finally try 블록에서 무슨 일이 생기든이 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다. 예외가 발생하는 코드를 짤 때는 웬만하면 try-catch-finally문으로 작성하는 것이 좋다. 사용 예 try { nonExistentFunction(); } catch (error) { console.error(error); // expected output: ReferenceError: nonExistentFunction is not defined // Not..

6장. 객체와 자료구조

6-1. 자료 추상화 추상 인터페이스를 사용하여 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다. 자료를 세세하게 공개하는 것보다는 추상적으로 개념을 표현하는게 더 좋다. Best public interface Vehicle { double getPercentFuelRemaining(); } 6-2. 자료/객체 비대칭 - 객체 : 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개 - 자료구조 : 자료를 그대로 공개하며 별다른 함수 제공x 서로 상반되는 특징을 가지고 있다. 객체는 기존 함수를 훼손하지 않으면서 새로운 클래스를 추가하기 쉬우나, 새로운 함수를 추가하기 어렵다. (모든 클래스를 고쳐야 하기 때문) 자료구조는 기존 자료구조를 훼손하지 않으면서 새로운 함수를..

SQL - GROUP BY, HAVING 절

집계 함수란(Aggregate Function)? : 여러 행들의 그룹이 모여서 그룹당 하나의 결과를 반환하는 다중행 함수 [특징] - GROUP BY절 : 행들을 소그룹화 한다. - SELECT 절, HAVING 절, ORDER BY 절에서 사용할 수 있다. [종류] 집계 함수 사용목적 COUNT(*) NULL 값 포함, 행의 수 계산 COUNT(표현식) 표현식이 참인 행의 수 계산 (NULL값 제외) SUM([DISTINCT | ALL] 표현식) 표현식의 NULL값을 제외한 합계 AVG([DISTINCT | ALL] 표현식) 표현식의 NULL값을 제외한 평균 MAX([DISTINCT | ALL] 표현식) 표현식의 최대값 MIN([DISTINCT | ALL] 표현식) 표현식의 최소값 STDDEV([DI..

Backend/SQL 2022.11.05

SQL 기본 및 활용 (3) - 트랜잭션

Transaction(트랜잭션) : 데이터베이스의 논리적 연산단위. 분리될 수 없는 한 개 이상의 데이터베이스 ALL | Nothing 의 개념 하나 이상의 SQL문이 포함된다. [개요] - 트랜잭션 : 세부적인 연산들의 집합 -> 대상 DML (UPDATE, INSERT, DELETE) - 커밋 : 반영된 데이터를 데이터베이스에 반영시킴 - 롤백 : 트랜잭션 시작 이전의 상태로 되돌리기 특성 설명 원자성 트랜잭션에서 정의된 연산들은 모두 실행되거나 실행되지 않아야 한다. (All or Nothing) 일관성 트랜잭션 실행 이전에 무언가 잘못되어 있지 않았었다면, 실행 후에도 잘못되어 있지 않아야 한다. 고립성 트랜잭션 실행 도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들면 안된다. 지속성 트랜잭션..

Backend/SQL 2022.11.05

SQL 기본 및 활용 (2) - DML

DML : Data Manipulation Language (데이터 조작어) -> 만들어진 테이블의 데이터를 입력, 수정, 삭제, 조회하는 언어 1. INSERT INSERT INTO [테이블명] (칼럼1, 칼럼2, ..) VALUES (값1, 값2, ..); OR INSERT INTO [테이블명] VALUES (전체 컬럼에 넣을 value 리스트); ex) INSERT INTO PLAYER (PLAYER_ID, PLAYER_NAME, TEAM_ID) VALUES ('2002007', '박지성', 'k07'); 2. UPDATE UPDATE 테이블명 SET (수정되어야 할 칼럼명) = (수정되기를 원하는 값); ex) 일괄적으로 수정 UPDATE PLAYER SET BACK_NO = 99; 3. DELE..

Backend/SQL 2022.11.04

SQL 기본 및 활용 (1) - DDL

DB 설치 없이 SQL 실습을 위해 오라클의 Live SQL을 사용하였다. 1. 테이블 생성 CREATE TABLE TEAM ( TEAM_ID char(3), REGION_NAME varchar(8), TEAM_NAME char(40), E_TEAM_NAME varchar2(50), ORIGIN_YYYY char(4), STADIUM_ID char(3), ZIP_CODE1 char(3), ZIP_CODE2 char(3), ADDRESS varchar2(80), DDD varchar(3), TEL varchar(10), FAX varchar(10), HOMEPAGE varchar2(50), OWNER varchar(10)); 2. 제약조건 추가 - Primary Key 추가 ALTER TABLE TEAM ..

Backend/SQL 2022.11.04
반응형