일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링
- 웹
- ORM
- 디자인 패턴
- HTTP
- 스프링 부트
- 스프링부트
- db
- Spring Boot
- 데이터베이스
- mysql
- Python
- 개발
- JPA
- rabbitmq
- 안드로이드
- python3
- 자료구조
- 파이썬3
- django
- java
- BCI
- Spring
- 웹 개발
- 보안
- 자바
- 파이썬
- 장고
- node.js
- bytecode
- Today
- Total
목록아키텍처 (4)
semtax의 개발 일지
Hexagonal Architecture 개요 이번 포스팅 에서는, 육각형 아키텍처(Hexagonal Architecture) 에 대해서 알아보고 간단한 예제를 통해 실제로 어떻게 육각형 아키텍처를 적용 하는지에 대해서도 알아보도록 하겠습니다. 계층화 없는 코드 = 스파게티 먼저 육각형 아키텍처를 설명하기 전에, 제가 첫 프로젝트를 진행했을때의 이야기를 해보겠습니다. 제가 모 기관에서 안드로이드 APK 보안취약점 분석을 수행해주는 서비스를 진행했을때, 저는 모듈화나 아키텍처에 대한 개념이 거의 없었습니다. 그래서 저는 입력값 검증 로직, 실제 비즈니스 로직, 데이터베이스 저장 로직 들을 전부 컨트롤러에 해당하는 메소드에 몰아넣어서 작성 하였습니다. 사실 맨 처음에 개발을 할때는 코드가 몇 줄 되지 않아서..
개요 이번 포스팅에서는, 스프링부트의 ORM(Object Relation Mapping) 라이브러리인 Spring-data-jpa를 이용하여 실제 데이터베이스에 값을 넣고 빼고, 수정하고, 읽어오는법(CRUD)을 익혀보도록 하겠다. 테이블(Relation) 과 객체의 불일치 이번 섹션은 제 개인적인 견해가 일부 들어가있을수 있으므로, 꼭 다른 사람 의견도 같이 들어서 옳은것을 취사선택 해주시기 바랍니다. 평소에 웹 개발을 하다가 보면, 사용자의 요구사항에 맞게 다양한 형식의 데이터를 받고, 가공해서 데이터베이스(특히 RDBMS)에 저장하는 작업을 많이한다. 결국 개발시에는, (자바기준으로) 데이터를 받아서 객체에 담고 데이터가 담긴 객체(VO, DTO)의 값을 꺼내서 SQL 쿼리에 매핑한다음에(DAO가 ..
개요 일정 규모 이상의 프로젝트를 진행할때에 있어서 모듈간 의존성이나, 코드의 품질을 관리하는것은 매우 중요하다. 그래서 많은 사람들(특히 소프트웨어 공학을 전공한 석,박사들)이 어떤 코드가 나쁜 품질의 코드인지 좋은 품질의 코드인지를 구분하는 많은 기준들을 만들어 냈다. 보통 아래와 같은 기준들이 존재 한다. Instability 해당 패키지 또는 모듈이 얼마나 바꾸기 힘든지를 나타내는 지표이다(보통 다른곳에서 많이 쓰고있는 모듈들이 바꾸기 힘드므로.) N(Efferent Coupling) / (N(Afferent Coupling) + N(Efferent Coupling)) 로 계산한다. Efferent Coupling : 다른곳에서 해당 패키지를 사용하고 있다는 의미 Afferent Coupling ..
소개 이번 시간에는, expressjs에서 postgreSQL을 연동하는 방법을 알아보도록 하겠습니다. postgreSQL은, Oracle이나 MySQL과 비슷한 RDBMS입니다. 메이저한 RDBMS중 가장 실험적인 기능을 많이 제공하는것으로 알려져 있습니다. 사실, node.js에서는 MongoDB를 가장 많이 사용하기는 하지만, RDBMS도 많이 사용을 하고 있습니다. 또한, 이미 MongoDB관련된 포스팅은 많은데다가 postgreSQL을 연동한 예제는 잘 보이지 않는것 같아서 작성을 하게 되었습니다. 설치 및 연동방법 아래 명령어를 이용해서 node.js용 postgreSQL 모듈을 설치 합니다. npm install pg-promise 아래 코드와 같은 방식으로 사용하면 됩니다. const pg..