CS지식 17

디자인 패턴 - 싱글톤 패턴(Singleton Pattern)

디자인 패턴이란? - 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은 것. 싱글톤 패턴이란? - 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴. 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수는 있지만, 단 하나의 인스턴스를 만드는 패턴으로 중복되는 인스턴스 즉 같지 않은 인스턴스를 만들지 않는것으로, 보통 데이터베이스 연결 모듈에 많이 사용. - 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 생성 비용이 줄어드는 장점이 있지만, 의존성이 높아지는 단점이 있다. // JavaScript Singleton Pattern class Singleton { construct..

CS지식 2023.06.03

코드 리펙토링

필요한 경우 기능 구현이 우선이고, 정상 작동이 되는지 확인 후 진행 한번에 하나의 작업에만 집중, 기능 구현과 동시에 하지 않는다 어떻게? 개발 프로세스에서는 코드 리팩토링 할 시점을 결정하는 것이 매우 중요하다 한 번에 한 가지 명확하고 구체적인 목표를 가지고 진행하는 것이 중요하다 리팩토링 유형 신규 기능 추가를 대비한 `준비를 위한 리팩토링` 현재 구조를 살펴보고 추가되는 코드가 기존 코드에 녹이기 어려운지 확인 구조를 다듬어서 새 기능을 쉽게 적용할 수 있도록 변형 동일한 코드가 반복된 경우 -> 별도의 함수로 분리하여 호출 의미가 유사한 함수가 두 개 이상 존재 -> 매개변수를 이용하는 것으로 함수 통합 모든 분기마다 동일한 로직을 구현 -> 분기 밖으로 해당 로직을 이동시켜 한 번만 작성 높..

CS지식 2023.06.03

전처리는 왜 필요할까?

전처리는 왜 필요할까? 정제하지 않은 데이터와 정제한 데이터는 분석 결과에서 많은 차이를 보인다. 전처리 방법 Basic, Tokenize, Spell, Check, Pos Tag, STemming, Stopwords 1. Basic 기초적인 전처리 html tag 제거 (크롤링한 html 원문 데이터일 경우) 숫자 영어, 특수문자 등 필요하지 않은 언어 제거 Lowercasing punctuation(문장부호) 제거 Emoji 및 BMP (유니코드에서 Basic Multilingual Plane(기본 다국어 평면)) 제거 기초 전처리는 데이터를 적재, 전송 등 다른 용도로 사용할 때에도 필요하다 2. Tokenize 자연어 처리에서는 텍스트를 토큰 단위로 나눈다. 특히 한국어에서는 띄어쓰기는 문맥과 의..

CS지식 2023.06.02

게임 제작 방법 노하우

게임 제작에 필요한 3대장 게임기획자(잡일꾼) + 게임 프로그래머(코딩노예) + 게임그래픽디자이너(그림쟁이) 게임 기획자가 하는 일 게임의 기본적인 룰과 인물, 배경, 세계관 등 모든 게임 안의 설정을 문서로 작성 (ex. 영화감독) 게임 분야와 장르에 따라 세부 역할은 다르지만 공통적으로 글와 그림, 자료 등으로 작업자에게 제작 내용 전달 제작하려는 게임의 재미요소를 명확하게 인지하고 자신의 생각을 작업자들에게 공유할 수 능력 필수 장르에 따라 배틀 시스템, UI 기획, 레벨 디자인 기획자, 퀘스트(컨텐츠) 디자인 기획자 등 세부적인 파트로 나눔. 게임 기획자가 되려면? 기획하려는 게임의 동작에 대한 대부분의 상황이 머릿속에 정확하게 설명할 수 있어야 합니다. 간단한 콘티 드로잉이나, 제작할 게임의 참..

CS지식 2023.06.02

AWS 보안 가이드

AWS 보안 가이드 목차 개요 - 클라우드 장점과 보안 사고 사례 - 클라우드 보안 사고 사례와 시사점 모범 사례 - 계정 보안 문제를 피하는 모범 사례 개요 - 클라우드 장점과 보안 클라우드의 장점 초기 선투자 비용 없음 : 고정 비용을 기반비용으로 대체, 미리 서버를 구매할 필요 없음 운영 비용 절감 : 사용한 만큼만 지불하며 규모의 경제로 인한 지속적인 비용 절감 탄력적인 운영 및 확장 : 필요 용량에 대한 예측 불필요, 수요에 맞춘 유연한 확장 속도 및 민첩성 : 수 분 만에 인프라 구축 가능, 빠르게 변화에 대응 비즈니스에만 집중 가능 : 혁신을 위한 다양한 실험 가능, 불필요한 인프라 관리 업무 제거 글로벌 확장 : 빠른 시간 내 글로벌 서비스 구현 가능 계정 보안에 대한 책임은 사용자 본인에..

CS지식 2023.06.02

Data Flow

목차 ✔ 왜 알아야 하는가? ✔ Data Flow 란? ✔ Data Flow 개념'들' ✔ (최소한 한번은 정확히 봐야할) Web Architecture 101 ✔ 부록: Architect 의 영역과 역할 Data Flow ✔ 왜 알아야 하는가? 더 좋은 개발자가 되기 위해 보다 정확한 개발을 하기 위해 회의시간의 내용을 빠르게 이해할 수 있기 위해 개발기간을 단축하기 위해 … ✔ Data Flow란? 하나의 작업을 수행하기 위하여 실행되는 각각의 세부 작업들 사이에서 자료가 입력되고 출력되는 모습을 의미한다. ✔ Data Flow 개념 - Monolithic Architecture of Three Tier JPA, MyBatis, elasticsearch는 미들웨어 장점 : 세세하게 ctrl 가능 단점..

CS지식 2023.06.02

AWS 배포에 필요한 구조

✔AWS 배포를 위해 필요한 구조를 학습해본다 ✔ 웹서버를 운영하기 위한 기술 스택들을 알아본다 ✔ 자주하는 실수에 대해서 알아본다 ✔ 배운 것들을 우리 팀 서버 배포 시에 활용해본다 NGINX ✔High performance load balancer, web server, API gateway & reverse proxy ✔비동기 방식이기 때문에 매우 높은 성능 ✔'정적인 파일(주로 프론트엔드 파일들)을 서비스할 때 뛰어난 성능(vs 톰캣) ✔load balancer API gateway 용도로도 사용 가능 ✔ DDOS 공격 방어도 가능하다! 프론트앤드와 백엔드의 분기 ✔/ 로 들어오는 요청은 프론트엔드의 라우터로 ✔/api 로 들어오는 요청은 백엔드로 보낸다 ✔Webserver로서의 역할 ✔API g..

CS지식 2023.06.02

AP의 조건

AP? - 웹서버와 WAS를 묶어서 AP 서버라고 부를 수 있다. - 단순히 말하면 웹서버는 프론트엔드단을 처리합니다. - WAS는 백엔드단을 처리합니다. - 둘이 반드시 공간이 분리되어 따로 존재할 필요는 없습니다. 좋은 ap의 조건 성능: 빠를수록 좋다 (캐싱, 비동기 처리, 요청 시간) -> 외부 Rest API 비동기호출, synchronous, asynchronose 안정성: 요청 정상 처리 및 사고 방지 보안: 보안 스펙트럼이 넓으니 주요 동작에 대한 이해 필요 보안 관련 고려사항 클라이언트가 아닌 서버 중심의 로직 처리 (클라이언트 요청은 쉽게 변경 가능) 사용자 인증&인가 (사용자 인증 없는 요청 처리는 다양한 접근 경로 존재) 사용자 요청의 유효성 (서버) 검증 (요청 필드 값 유효 검증..

CS지식 2023.06.01

JPA

ORM(Object-Relational Mapping) 프레임워크. java만으로 쿼리 없이 DB 정의, 테이블 매핑, DB 사용 등이 가능하게 하는 라이브러리가 JPA. JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다. 쿼리를 몰라도 사용할 수 있고, 러닝 커브가 낮다 Table명이 되는 @Entity, 쿼리가 되는 JpaRepository만 작성하면 사용할 수 있다 @Entity public class table_name { // 릴레이션 정의 } 릴레이션 정의 시에는 다중성, 방향성, 연관관계의 주인을 고려해야 한다. 1:1 @OneToOne 1:N @OneToMany N:1 @ManyToOne N;M @ManyToMany 양방향은 실무에서 위험성 때문에 잘 쓰지 않는다. 양방향도 결..

CS지식 2023.06.01