분류 전체보기
-
[CS] 배치 작업 처리CS 2023. 5. 12. 09:14
1. 배치 프로그램 이란? - 개별적으로 어떤 요청이 있을 때마다 실시간으로 통신하는 것이 아닌 한꺼번에 일괄적으로 대량 처리 - 정해진 특정한 시간에 실행되도록 스케쥴링 진행 2. 배치 스케쥴러 - 일괄 처리(Barch Processing) 작업이 설정된 주기(시, 분, 일, 월, 특정 이벤트 등)에 맞춰 자동으로 수행되도록 지원해 주는 도구 3. 배치 스케쥴러 종류 - 스프링 배치(Spring Batch) - Spring Source사와 Accenture사가 2007년에 공동 개발한 오픈소스 프레임워크 - 로그 관리, 추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작 등의 다양한 기능을 제공 - Quartz - Quartz는 스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 ..
-
[CS] 나만의 간단한 프레임워크 설계 방법CS 2023. 5. 10. 09:18
1. 프레임워크의 정의 Gof의 디자인 패턴으로 유명한 랄프 존슨(Ralph Johnson)은 "프레임워크란, 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"이라고 정의 ex) 게임 프레임워크 or 게임 엔진 : 렌더링 모듈, 파일 입출력 모듈, 게임 오브젝트 모듈, 사운드 모듈, 네트워크 모듈, 키 입출력 모듈, UI / 앱 모듈 2. 프레임워크의 구조와 설계 파악하기 - 프레임워크를 초보자 혼자서 만들기에는 상당히 큰 작업 - 기존에 존재하는 여러 프레임워크를 사용해보며 전체적인 구조를 파악하는 것이 핵심 - 여러 프레임 워크 중에 공통적인(중첩적인) 부분은 반드시 존재하며, 그 부분을 자신만의 설계 포인트로 "어떻게" 녹여낼 것..
-
[CS] Unmanaged Language VS Managed LanguageCS 2023. 5. 8. 10:08
1. Unmanaged Language VS Managed Language UnManaged Language TestA(){ class* a = new class() } 힙 영역에 잡혀진 메모리를 직접 관리 가능 블록문 벗어났을 때 수동으로 지우지 않으면 메모리가 남아 있는다. Managed Language TestB(){ class b = new class(); } 힙 영역에 잡혀진 메모리가 Garbage Collector에서 자동으로 관리 블록문 벗어나면 메모리가 남아 있지만 GC가 감지한다. 스택 영역은 Managed / UnManaged 다 동일한 방식으로 구현 TestC(){ class c; } 블록문 벗어나면 알아서 해제가 된다. 힙 영역은 런 타임에 크기가 결정됨 - 사용자의 동적 할당 스택..
-
[CS] 공통 코드CS 2023. 5. 8. 09:09
1. 하드 코딩 한다면? - 값이 추가되거나 변경될 때마다 소스 코드를 수정 / 배포해야하는 불필요한 작업 - 여러 페이지에 같은 내용을 표현해야 할 경우, 동일한 코딩을 반복하는 시간 낭비 - 공통코드 : 하드 코딩에 해당하는 데이터를 참조를 통한 테이블화 후 관리하기 위해 묶어 놓은 데이터 집합체 - java, python의 코드 문법으로 치면 가장 비슷한 타입 : enum 타입(형) 2. 어떤 때 사용하나? - 구분코드의 특징을 갖는 데이터 - 남녀 구분 코드, 사용여부 등 - 특징이 공통적인 것들끼리 묶을 수 있는 데이터 - 고객등급 코드, 주문처리, 상태 등 - 고정적이지 않고 지속적으로 추가 가능한 데이터 - 상품 종류, 결제수단, 코드 3. 테이블 설계 - 공통코드는 크게 코드의 유형과 실제..
-
[CS] 쓰레드에 대한 이해와 활용CS 2023. 5. 1. 09:21
1. Program - Internet Explorer, Chrome, Notepad, online Game ... - HelloWorld 또한 하나의 프로그램 2. Process - 프로그램의 하나의 인스턴스가 프로세스 (프로그램이 실제 메모리에 코드가 실행된 상태) - 프로그램은 하나지만, 같은 프로세스가 여러 개가 될 수 있다. 3. Thread - 프로세스 내에서 실행되는 흐름의 단위 - CPU는 한번에 하나의 명령 수행 - 멀티쓰레드라 하더라도 context switching에 의해 번갈아가며 실행된다. - 프로세스는 반드시 1개 이상 스레드를 가짐 4. Thread의 활용 예시 (1) - 10개의 요청이 동시간대에 이루어진다면? - 요청 처리할 때마다 515ms를 보내야 하나? - Multi ..
-
[CS] 저장 프로시저(Stored Procedure)의 정의와 활용CS 2023. 4. 27. 09:16
1. 함수(Function)란? - DB 내에서 제공되는 모듈(대부분 수식을 통한 내부 계산, SQL문 사용 X) - 반드시 리턴값이 존재 - 클라이언트에서 서버에 필요한 값을 요청 받은 후 Local 실행 - SQL문 안에서 실행이 가능하다 ex) SELECT 함수명() FROM DUAL; 2. 저장 프로시저(Stored Procedure)란? - SP(Stored Procedure)는 일련의 쿼리문을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합 - 호출 시 DB에서 실행해서 요청한 CLIENT(혹은 미들 서버)로 돌려준다. - 리턴 값이 존재할수도, 존재하지 않을 수도 있다. - 저장 프로시저는 그 자체가 쿼리문의 집합체기 때문에 SQL문에서 사용 불가 - SP를 최초 실행하면 최적화, 컴파일 단..
-
[React] Three.js + CSS3d animationFrontEnd/React 2023. 4. 24. 21:02
1. Three.js Three.js는 웹페이지에 3D 객체를 쉽게 랜더링할 수 있도록 도와주는 Javascript 3D 라이브러리이다. WebGL 기술을 기반으로 랜더링과 카메라, 조명 등의 3D 프로그래밍 기술을 간단하게 사용할 수 있도록 한다. https://threejs.org/docs/index.html#manual/ko/introduction/Creating-a-scene three.js docs threejs.org 한글 문서도 지원한다. 다양한 example이 있지만 이번 프로젝트에서는 https://threejs.org/examples/#css3d_periodictable three.js examples threejs.org 이 유용해 보인다. 별자리 튜토리얼도 있다. https://sb..
-
코딩의 DRY 법칙CS 2023. 4. 24. 09:08
1. 코딩의 DRY 법칙 - 반복하지 말 것(Don't Repeat Yourself) - 코딩의 '반복을 줄이는 것'이 목표인 소프트웨어 개발의 기본 원칙 - 시간과 노력이 절약되고 유지보수 하기 쉽고, 버그 가능성도 줄인다. 2. 동일한 코드가 반복된다면? - 잠재적인 버그의 발생 가능성이 높아진다. - 코드 변경시, 반복되는 모든 코드를 찾아서 수정해야 한다. - 이 과정에서 누락이 발생하면 버그로 이어질 수 있다. 3. DRY 법칙의 특징 - 코드의 재사용성을 높인다. - 코드의 유지 보수성을 좋게 한다. - DRY 법칙에는 반드시 모듈화 작업이 필수 요소 4. 지양해야 될 스파게티 코드 - 다른 함수에서 어떤 일을 하는지 관심 가질 필요없다. => 캡슐화와 정보은닉 - 각 함수에서 수정이 필요할 ..