1. 모놀리식 (Monolithic)모놀리식은 시스템의 모든 비즈니스 로직이 하나의 서버에 의해 처리되는 방식으로 배포가쉽고 시스템을 빠르게 만들 수 있다는 장점이 있어 초기 서비스를 만들 때 유용한 방식이다. 하지만 시스템 규모가 커짐에 따라 다음과 같은 단점이 발생할 수 있다. 단일장애지점 : 하나의 장애가 발생하면 시스템 전체에 영향을 미침트래픽 대응 : 특정 서비스의 트래픽 증가시 대응하기 위해 모든 서비스(시스템 전체) 리소스 스케일링 필요기술에 종속적 : 작은 기능을 수정 해도 전체 배포를 하기 때문에 테스트 시간이 많이 필요하고 오류가 자주 발생하여 신기술 도입 어려움2. MSA (Micro Service Architecture)모놀리식 아키텍처를 Microservice 단위로 쪼갠 후 독립..
메일전송 과정 화면의 HTML(스트링)을 gmail로 전송했을 때 텍스트는 보이지만 이미지는 보이지 않는 현상이 발생했다. Java의 SMTP를 이용해 전송했으며, 콘솔창을 통해 태그의 내용(메일의 body )이 정상적으로 생성된걸 확인했지만, 정작 메일을 수신했을 때 이미지만 보이지 않았다. 개발자 도구를 통해 메일을 확인해보니 이미지 영역의 태그는 존재하지만 로 비어있는 상태였다. 알고보니 gmail 뿐만 아니라 대부분의 메일 서비스에서는 Base64를 통한 이미지 표시를 지원하지 않는다고 한다. Base64 이미지를 담은 html 파일을 첨부파일로 보내도 브라우저에서는 확인 불가능하며 사용자의 PC에 해당 html 파일을 직접 다운로드 해야만 확인할 수 있었다. Gmail doesn't suppor..
배치(Batch) 데이터가 생성 또는 요청될 때마다 실시간으로 처리하는 것이 아니라 저장해두었다가 대량의 데이터를 일괄적으로 처리하는 프로세스이다. 백업, 필터링, 정렬과 같이 개별 요청을 트랜잭션에서 처리하기 비효율적인 경우 또는 유사한 업무를 한 번에 일괄처리해 자원을 효율적으로 사용할 수 있다. 배치의 특징 1. 대량의 데이터를 처리한다 2. 특정 시간에 처리한다. 3. 일괄적으로 처리한다. 대량의 데이터를 일괄처리하는 것이 배치의 핵심이다. 이 때 배치가 실행되는 시간은 시스템 부하가 발생할 수 있는 시간을 피하는 것이 좋다. 배치를 사용해야하는가 배치를 적용하면 요청을 실시간으로 반영하지 않아도 되기 때문에 웹/클라우드 상에서 자원을 효율적으로 사용할 수 있다. 그러나 배치 프로세스가 적용되면 ..
고급언어로 작성된 프로그램은 컴퓨터가 바로 이해할 수 없기 때문에 기계어로 변환하는 과정을 거쳐야만한다. 소스코드를 기계어로 변환하는 처리기법으로 번역 기법(컴파일 기법)과 인터프리터 기법이 있고 컴파일 기법을 이용해 프로그램을 실행시키는 언어를 컴파일 언어, 인터프리터 기법을 통해 프로그램을 실행시키는 언어를 인터프리터 언어라 한다. 컴파일러 고급언어로 작성된 소스프로그램을 기계어로 번역된 목적프로그램으로 번역해주는 번역기로 번역기법에서 사용된다. 저급언어로 작성된 프로그램은 어셈블러라고 하는 번역기를 통해 번역되며 사용되는 번역기 및 번역과정은 다음과 같다. 번역기 종류 1. 컴파일러 -고급언어를 번역해 어셈블리언어 혹은 기계어로된 목적 프로그램을 생성 2. 어셈블러 - 저급언어를 번역해 기계어로된 ..
개발을 하다 보면 날코딩, 하드코딩이란 단어를 자주 접하게 된다. 어감에서부터 좋은 코드를 부르는 것은 아니란 걸 알았지만 정확한 의미를 정의하지 않고 그런가 보다 하며 쓰고 있었는데 문득 정확한 의미를 알고 싶었다. 하드코딩되었다는 것은 상수나 변수에 들어가는 값(데이터)을 코드에 직접 입력해 프로그램이 동작할 때를 말한다. 코드에 데이터가 입력되어있다는 것은 곧 값이 고정되어있단 것을 의미한다. 문제1) 확장성 및 유연성 #include using namespace std; //하드코딩 string hc(string s){ return "Hello World"; } //소프트코딩 string sc(string s){ return s; } int main(){ cout
1. repl.it The collaborative browser based IDE Replit is a simple yet powerful online IDE, Editor, Compiler, Interpreter, and REPL. Code, compile, run, and host in 50+ programming languages. replit.com 영어로 된 사이트지만 이용하는데 큰 어려움이 없다. 지원하는 언어가 다양하고 github과 연동할 수 있다는 장점이 있다. 웹사이트 반응속도나 저장소를 불러오는 속도가 빠르지만, 작성한 코드를 실행시키는 속도가 조금 답답한편이다. 매달 7달러를 지불하면 빠릿빠릿 한 유로버전으로 업그레이드할 수 있지만 간단한 프로젝트를 진행한다면 무료버전도 쓸만하다...
REST API와 RESTful API REST API를 한 마디로 정의하면 API가 REST방식으로 동작하는 것을 뜻하며 RESTful API는 REST방식을 잘 준수한 API를 뜻한다. 이게 무슨 뜻인지 이해하기 위해 REST와 API가 각각 무엇인지 알아보았다. API (Application Programming Interface) 웹 이나 모바일 앱에서 클라이언트(사용자)가 서버로 요청을 전송하면 서버는 그에 대한 응답을 보내준다. 예를 들면 도서관 시스템에서 검색창에 원하는 책을 입력하고 검색버튼을 누르면 검색결과가 나오는것과 같다. 이 때 사용자는 검색창을 이용해 도서 검색을 하게 되는데, 이러한 검색 창과 같이 지정된 형식으로 요청을 받아 프로그램간에 상호작용을 하는 수단을 API라고 할 수..
작년 이맘때쯤 공공빅데이터 청년인턴십에 참여해 교육을 받고 있었다. 그땐 블로그를 운영하지 않아서 후기를 적을 생각을 하지 못했는데 최근에도 청년인턴 공고가 올라오는 걸 보고 문득 떠올랐다. 면접장 분위기 면접 복장은 자율이라 했지만, 아무래도 공공기관 면접이다 보니 남녀 모두 정장이 대부분이었다. 반바지를 입고 오신 분도 계셨는데, 면접관분들이 복장으로 페널티를 주거나 하시는 건 못 봤지만, 정장 사이에 캐주얼한 느낌이 조금 부자연스러웠다. 5 대 5로 면접이 진행됐으며 면접장 분위기는 편했다. 빅데이터 관련 질문을 많이한다고 들어서 관련 공부를 하고 갔지만, 딱히 관련질문이 들어오진 않았다(지역/면접관마다 다른듯하다). 인성 면접으로 진행됐으며, IT 비전공자에겐 중도포기를 어떻게 안 할 수 있는지를..
- Total
- Today
- Yesterday
- Java
- 오라클
- 국비교육
- 개발용어
- 데이터베이스
- C++
- 스프링부트
- 프로그래머스
- 넥사크로
- 네트워크
- 백준
- svn
- HeidiSQL
- 오류
- 이클립스
- 부트스트랩
- 환경설정
- JVM
- Open API
- JSP
- SQL
- 스프링
- CS
- C
- Thymeleaf
- 인턴
- CSS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |