본문 바로가기

웹프로그래밍/웹 개발 지식들~

다양한 웹서버들 Django Django는 파이썬으로 만들어진 무료 오프소스 웹 애플리케이션 프레임워크 입니다. 장점 Python 을 기반 사이트에서 사용하는 기능들을 기본 모듈로 제공 Instagram 개발 높은 코드 완성도 유지 IDE 지원(Pycharm, visual studio) deploy 및 운용에 대한 개발 비용을 아낄 수 있다. 단점 typeless언어의 약점을 그대로 보유 node js 장점 다양한 모듈 지원 C++로 필요한 모듈 작성 가능 싱글스레드, 비동기 IO처리에 기반한 빠른 속도 자바 스크립트를 이용해 프론트엔드 개발자의 진입장벽이 낮음 단점 싱글스레드 이기 때문에 하나의 작업에 시간이 오래 걸리면 시스템 전체 성능이 떨어짐 rails 장점 ruby언어을 이용한 가독성, 표현력 twitter, .. 더보기
메세지 브로커, 메시지 큐 메시지 브로커란? 메시지 브로커는 Sender - Receiver 간에 메시지를 정의된 형식의 메시지를 전달하기 위해 작동하는 프로그램 모듈입니다. 소프트웨어 프로그램 간에 메시지를 전달하기 위한 네트워크의 구성요소입니다. 메시지 검증, 전달, 라우팅을 위한 설계의 구현체가 되겠으며, decoupling을 용이하게 하는 요소로 활용한다고 보시면 되겠습니다. 메시지 지향 미들웨어(Message Oriented Middleware : MOM): 분산 시스템 간 메시지를 주고 받는 기능을 지원하는 소프트웨어나 하드웨어 인프라 메시지 큐(Message Queue : MQ) : MOM을 구현한 시스템 브로커(Broker) : Message Queue 시스템 Producer(Sender) 가 Message를 Que.. 더보기
Native application, Web application 차이점 Web application이란 인터넷과 인트라넷 등의 네트워크를 통해서 Web 브라우저를 사용하고 조작하는 애플리케이션을 의미합니다. 브라우저에서 애플리케이션에 접근하면, 네트워크상에 있는 Web 서버에서 프로세싱 하고 프로세싱 결과를 브라우저에 표시합니다. 서버에 대한 네트워크 통신이 가능한 환경에서 브라우저만 있으면 접근할 수 있기 때문에 컴퓨터, 스마트폰/태블릿 등 플랫폼에 관계없이 이용할 수 있습니다. 네이티브 애플리케이션은 단말기에 설치하여 실행하는 애플리케이션을 말합니다. 예를 들어 Android 단말기라면 play store에서 iPhone이라면 App store에서 필요한 애플리케이션을 선택하여 다운로드/설치하여 이용하게 됩니다. 또한 동영상 소프트웨어나 오피스 소프트웨어처럼 컴퓨터에 설.. 더보기
웹애플리케이션 Layer(Architecture) 클라이언트 프렌젠테이션 계층 서비스 계층 데이터 엑세스 계층 DB/레거시 Data Access Layer 데이터 엑세스 계층 DB이용이 주된 목적, 데이터 처리 DAO code (추상화 레벨 높음) JDBC Template JDBC 트랜잭션 동기화 DataSource (추상화 레벨 낮음) 서비스계층 Business Layer 비즈니스 로직의 핵심 POJO로 짠다 프렌젠테이션 계층 UI를 담당 더보기
jquery 사용법 jquery -> javacript library cdn 호스트를 사용하거나 직접 내려받아 사용하는 방법 CDN(Contents Distribution Network) ->네트워크 상에 동일한 콘텐츠 내용을 복제해 분산시켜 놓은 시스템. 사용자가 더빠르게 서비스에 엑세스할 수 있음 더보기
DB <UNDO, REDO> 1. 회복 트랜잭션이 수행되는 동안 시스템에 알수없는 오류 또는 물리적으로 문제가 발생했을 때, 트랜잭션의 수행을 되돌려야 합니다. rollback이란 트랜잭션 내의 질의를 수행하면서 문제가 발생했을 경우에 수행되는 것이지만, 시스템의 오류 또는 물리적인 문제의 경우는 시스템 상의 문제이므로 트랜잭션이 다시 수행되어야 합니다. 이를 시스템 회복(recovery)이라 합니다. 회복은 데이터의 신뢰성을 보장하며, 트랜잭션의 원자성과 영속성을 보장합니다. check point 이후에 log기록을 보면서 완료되지 않은 트랜잭션에 대해서 수행 redo : commit 된것을 다시 실행 undo : 트랜잭션은 시작 됬지만 commit되지 않은 것을 연산 취소 2. undo, redo와 check point 시스템 .. 더보기
DB INDEX란 ? 1) INDEX의 의미 RDBMS에서 검색속도를 높이기 위해 사용하는 data stucture 입니다. 해당 TABLE의 컬럼을 색인화(따로 파일로 저장)하여 검색시 해당 TABLE의 레코드를 full scan 하는게 아니라 색인화 되어있는 INDEX 파일을 검색하여 검색속도를 빠르게 합니다. 이런 INDEX는 TREE구조로 색인화합니다. RDBMS 에서 사용하는 INDEX는 Balance Search Tree 를 사용합니다. 실제로는 RDBMS 에서 사용되는 B-Tree 는 B-Tree 에서 파생된 B+ Tree 를 사용한다고 합니다. 참고로 ORACLE이나 MSSQL에서는 여러종류의 TREE를 선택하여 사용가능합니다. 2) INDEX의 원리 INDEX를 해당 컬럼에 주게 되면 초기 TABLE생성시 만.. 더보기
리눅스, 도커, AWS 리눅스(Linux) 웹 서비스는 어딘가 데이터센터에 있는 물리적 서버에 서버용 운영체제를 돌리면서, 그 위에 실행해서 운용합니다. 서버용 운영 체제로, 상용 고가 유닉스 시스템을 선호하는 곳도 있지만, 언젠가부터 리눅스가 많이 쓰이지요. 이제는 심지어, 금융권인 카카오 뱅크에서도 x86에 리눅스를 쓰는 게 화제가 되고 있으니, 사실상 다 써도 된다고 보셔도 될 것 같습니다. 저도 거의 리눅스만 쓰는 업계 출신이라서 그런지 “리눅스 쓰는 게 뭐가 어때서?”라는 생각인데, 금융권 분들은 파격이라고 여기나 봅니다. 아무튼, 서버 운영체제로 리눅스를 쓰면 되는데, 이 리눅스에는 배포판이라는 게 여러 종류 있습니다. 다 리눅스인데, 단체별로 어떻게 소프트웨어 패키지를 묶어서 배포하느냐가 다르고 아주 조끔씩 다르기.. 더보기