일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- bytecode
- Spring
- 안드로이드
- 웹
- 자료구조
- 스프링부트
- 스프링
- Python
- db
- 파이썬
- 스프링 부트
- 개발
- 보안
- JPA
- 자바
- node.js
- java
- mysql
- ORM
- 파이썬3
- python3
- BCI
- 웹 개발
- HTTP
- Spring Boot
- 디자인 패턴
- django
- 데이터베이스
- rabbitmq
- 장고
- Today
- Total
목록개발 (99)
semtax의 개발 일지
개요 이번 포스팅에서는 마크다운 문서에서 도표나 그림을 그려주는 mermaid라는 라이브러리를 소개하도록 하겠다. 설치 Typora와 같은 경우, 기본 내장이 되어있어서 굳이 설치를 안해도 된다. 만약 티스토리와 같은 서비스에서 사용하려면 다음 코드를 추가해주면 된다. 예제 아래 예제는 그래프를 그리는 예제이다. graph TD A[Christmas] -->|Get money| B(Go shopping) B --> C{Let me think} C -->|One| D[Laptop] C -->|Two| E[iPhone] C -->|Three| F[fa:fa-car Car] 아래 예제는 시퀸스 다이어그램을 그려주는 예제이다. sequenceDiagram Alice->>+John: Hello John, how ..
개요 이번 포스팅에서는, 스프링부트의 ORM(Object Relation Mapping) 라이브러리인 Spring-data-jpa를 이용하여 실제 데이터베이스에 값을 넣고 빼고, 수정하고, 읽어오는법(CRUD)을 익혀보도록 하겠다. 테이블(Relation) 과 객체의 불일치 이번 섹션은 제 개인적인 견해가 일부 들어가있을수 있으므로, 꼭 다른 사람 의견도 같이 들어서 옳은것을 취사선택 해주시기 바랍니다. 평소에 웹 개발을 하다가 보면, 사용자의 요구사항에 맞게 다양한 형식의 데이터를 받고, 가공해서 데이터베이스(특히 RDBMS)에 저장하는 작업을 많이한다. 결국 개발시에는, (자바기준으로) 데이터를 받아서 객체에 담고 데이터가 담긴 객체(VO, DTO)의 값을 꺼내서 SQL 쿼리에 매핑한다음에(DAO가 ..
개요 이번 포스팅에서는 pyenv를 설치해서 python 버전관리 하는법을 알아보도록 하겠다. 버전관리 아래의 상황을 가정해보자. 당신이 열심히 파이썬으로 개발을 하고있는데, 당신의 컴퓨터에는 python 3.8 버전이 깔려있다. 하지만, 회사 운영환경은 python 3.6 버전을 쓰고 있고, 당신은 지금 개인 프로젝트를 python 3.8버전으로 하고있다. 게다가, 당신이 받은 다른 업무는 python 3.5를 쓰고 있는 상황이다. 또한, 이 3가지 버전마다 호환이 안되는 부분이 존재해서 단 1버전만을 선택해서 개발을 할 수 가 없는 상황이다. 이럴때 당신은 어떻게 하겠는가? 위와 같은 상황을 위해서 한 컴퓨터에(단일 OS에) 여러가지 파이썬 버전(python 3.8, 3.7, 3.5)이 공존할수 있게..
개요 구글 protobuf는 XML이나 json과 같이 데이터 교환을 위해 만들어진 포맷으로 구글에서 제작하였다. json과는 다르게 바이너리 형태로 포맷이 이루어져있어서 json보다는 속도가 빠르다. 하지만, 별도의 컴파일러를 이용해서 스키마(데이터를 정의)파일을 컴파일을 해서 사용해야하기 때문에, 데이터 포맷을 변경하기가 json보다는 까다롭다는 단점이 있다. 또한, 구글에서 제공하는 RPC(Remote Procedure, 주로 서비스간 통신을 주고받을때 많이 사용 함, 비슷한 서비스로 apache thrift가 있다)프레임워크인 gRPC와 같이 쓰이는 경우가 많다. protobuf는 데이터의 타입을 정의하는 schema파일인 .proto파일과 이를 컴파일해서 사용하는 각 언어별 protobuf 라이..
개요 이번 시간에는 node.js의 프로세스 관리 도구인 pm2에 대해 소개를 하도록 하겠다. Process Manager 먼저 아래의 상황을 가정해보자. 만약 node app.js나 npm start 만을 이용해서 서비스를 띄운다고 가정을 해보자. 그런데, 예상하지 못한 상황(예를 들어 예상 못한 값이 들어와서 예외처리를 못한다거나, DB 커넥션 풀 개수가 꽉찼다거나, 모르고 에러 핸들러 1개를 깜박하고 처리를 못했다거나 등등)이 와서 서비스가 죽어버렸다. 그런데 당신은 자고 있어서 대처가 불가능 하였다. 이런 슬픈상황이 ㅠㅠ.. 또 아래와 같은 상황을 가정해보자. 당신이 node.js를 기반으로한 동접자 100명의 서비스를 운영한다고 가정해보자. 그런데 운이 좋아서 사용자가 갑자기 500명으로 5배 ..
개요 이번 포스팅에서는 웹 서비스 개발시에 유용하게 써먹을 수 있는 Fiddler라는 툴에 대해서 설명을 하도록 하겠다. Fiddler는 웹 디버깅 프록시 프로그램으로, HTTP와 HTTPS 프로토콜을 캡처해서 분석 할 수 있는 도구이다. 사실, 서버개발자 뿐만 아니라, 모바일 앱 리버싱 할때에도 쓰이고, 웹 해킹 문제 풀때에도 쓰이고, 클라이언트 개발할때도 쓰이고 여튼 다양하게 쓰인다. 사실, MAC OS X 에서는 Fiddler가 없었던걸로 알고 있었는데 맥 버전도 찾아보니 나와서 소개를 하게 되었다. 설치 https://www.telerik.com/fiddler 위 사이트에 방문해서 설치를 해주면 된다. 사용법 아래 사진은 Fiddler를 실행한 화면이다.(맥 버전 기준) 아래 사진이 HTTPS 패..
개요 이번 포스팅에서는, node.js 와 rabbitMQ를 이용해서 pub-sub패턴을 구현하는 내용을 진행하려고 합니다. Pub-Sub 패턴? Pub-Sub 패턴은 : Publisher Subscriber 패턴의 약자로, 발행자와 구독자 이 2가지로 나누어서 구독자(Subscriber)가 발행자(Publisher)에게 자기가 발행자의 정보를 받겠다고 구독 신청을 하면, 발행자가 자신에게 구독 신청을 한 구독자에게 메시지를 보내는 패턴을 말합니다. 쉽게 생각해서 TV 방송국과 시청자와의 관계를 생각하시면 됩니다. RabbitMQ Exchage 이전 포스팅에서 다루었던 개념을 다시 한번 복습해봅시다. Producer : 메시지를 보내는 사람 Queue : 메시지를 저장하는 큐(메시지 큐) Consumer..
개요 일정 규모 이상의 프로젝트를 진행할때에 있어서 모듈간 의존성이나, 코드의 품질을 관리하는것은 매우 중요하다. 그래서 많은 사람들(특히 소프트웨어 공학을 전공한 석,박사들)이 어떤 코드가 나쁜 품질의 코드인지 좋은 품질의 코드인지를 구분하는 많은 기준들을 만들어 냈다. 보통 아래와 같은 기준들이 존재 한다. Instability 해당 패키지 또는 모듈이 얼마나 바꾸기 힘든지를 나타내는 지표이다(보통 다른곳에서 많이 쓰고있는 모듈들이 바꾸기 힘드므로.) N(Efferent Coupling) / (N(Afferent Coupling) + N(Efferent Coupling)) 로 계산한다. Efferent Coupling : 다른곳에서 해당 패키지를 사용하고 있다는 의미 Afferent Coupling ..