분류 전체보기 171

http multipart

일을 하던 중에 tcp서버로 받은 센서 값을 사진과 함께 서버로 http 통신을 사용하여 넘겨주는 일을 맡았습니다. 이를 해결하기 위해 http multipart를 사용했습니다. multipart란 해석 그대로 '여러 부분'이라는 뜻입니다. 쉽게 설명하면 파일과 문자를 같이 서버에 post방식(사진은 용량이 커 GET방식 사용 불가)으로 넘겨주어야 하는 일이 발생합니다. 기본적으로 post는 하나의 타입만 보낼 수 있습니다. 이를 해결하기 위해 나온 것이 MULTIPART입니다. 이는 text부분의 공간과 file 부분의 공간을 나누어 보내는 방법을 사용합니다. 이 방법으로 한번에 다른 형식의 데이터를 보내 리소스를 줄일 수 있습니다.

Relational Database(관계형 데이터베이스)

RDB는 각 테이블간의 관계를 정의하는 DB입니다. 관계형 DB의 가장 중요한 키워드는 '동사형'입니다. 이렇게 생각해봅시다. 만약 사용자가 물건을 구매하는 사건이 일어납니다. 이는 행동에는 행위자와 목적어인 구매자와 물건이 있습니다. 그리고 가장 중요한 '구매하다'라는 동사가 나옵니다. 여기서 고정되어 있는 값은 구매자와 물건입니다. 즉, 주체와 목적어는 고정되어 있죠. 이는 RDB에 넣지 않고, 엑셀과 같은 간단한 DB로 관리할 수 있습니다. 하지만 계속 값이 바뀌는 '구매하다' 라는 동사는 그 변화된 값을 계속 기록해주어야 합니다. 이 말은 역사를 기록하는 행위라고도 할 수 있습니다. 그래서 RDB를 설계할 때 값이 변하는 동사형을 찾는 일이 가장 중요합니다. 그리고 그 동사와 관련된 값이 고정된 ..

DB 2022.06.23

apache tomcat 설치

저는 이클립스로 코딩을 하고 이클립스 내부 톰캣을 사용하여 테스트만 하다보니 톰캣을 직접 돌릴줄 몰랐습니다. 하지만 최근 jsp를 직접 돌려야 할 일이 생겨 톰캣서버에 대해 공부하고 적어봅니다. 1. 톰캣 다운로드 https://tomcat.apache.org/ Apache Tomcat® - Welcome! The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These s..

SERVER/window 2022.06.20

TCP통신 서버 만들기

node-red서버에서 tcp통신은 매우 쉽게 만들 수 있습니다. 보통 언어에서는 socket을 열고 thread를 만들고 실행해주어야 합니다.(그 외에도 예외처리 등...) 하지만 node-red는 블록 2개면 tcp서버를 받고, 보내줄 수 있습니다.(보통은 MQTT를 추천합니다.) 이 두개의 블록을 사용하여 데이터를 tcp로 보내고 받을 수 있습니다. 일단 node-red 서버를 실행시키고 localhost:1880으로 들어옵니다.(기본 포트는 1880입니다.) 들어오면 오른쪽 위에 메뉴를 클릭하여 가져오기를 누르세요. 열린 창 안에 아래 JSON을 넣으시고 확인을 누르면 제가 만든 서버측 TCP블록이 생성됩니다. [ { "id": "303ed48cda1eef2c", "type": "http in",..

node-red는 무엇인가?

Node-RED(노드 레드)는 하드웨어 장치들, API, 온라인 서비스를 사물인터넷의 일부로 와이어링(배선화)시키기 위해 본래 IBM이 개발한 시각 프로그래밍을 위한 플로 기반 개발 도구이다. Node-RED는 브라우저 기반 플로 편집기를 제공하므로 자바스크립트 함수를 개발하는데 사용할 수 있다. 애플리케이션의 요소들은 재사용을 위해 저장하거나 공유할 수 있다. 런타임은 Node.js 위에서 개발되어 있다. Node-RED에서 만든 플로는 JSON을 사용하여 저장된다. 버전 0.14 이후 MQTT 노드들은 적절하게 구성된 TLS 연결을 만들 수 있다. -위키백과 이처럼 node - red는 IBM사가 개발한 로우코드 프로그램으로 nodejs기반으로 동작합니다. 그래서 여러가지 일을 처리하는 싱글스레드 기..

피벗(PIVOT) 테이블

다른 분이 만들어분 SQL에 GROUP_CONCAT()함수가 나와 인터넷에 찾아보니 이는 테이블 피벗을 위한 함수임을 알았습니다. 여기서 피벗이란 '테이블 데이터를 행에서 열로 바꾸는 과정'입니다. 즉, 보통의 테이블은 세로로 데이터가 나오지만 특정한 데이터를 가로로 묶어 보여주기 위한 함수입니다. idx group name 1 1 white 2 1 black 3 2 green 4 2 orange 이처럼 데이터가 있으면 이를 group으로 묶어서 보여주고 싶을 경우 아래 SQL처럼 사용하면 됩니다. SELECT group, GROUP_CONCAT(name) FROM test GROUP BY group 이 결과 아래 테이블이 나옵니다. group name 1 white, black 2 green, oran..

DB/mysql(mariaDB) 2022.06.19

stored procedure(저장 프로시저) 만들기

저번글에서 적었듯 sp(저장 프로시저)는 장점과 단점들이 있습니다. 하지만 빠른 처리속도와 DB의 보안을 간단하게 높여준다는 것에서는 장점이 있습니다. 이번편에서는 저장 프로시저를 어떻게 만들고 실행하는지 알아보겠습니다. DELIMITER $$ CREATE PROCEDURE 프로시저 이름() BEGIN SELECT 뽑을 이름 FROM 사용할 테이블 [where][order by][group by]; END $$ DELIMITER ; 1. 처음에 문단의 마침을 ; 에서 $$로 바꾸어 준다는 의미의 DELIMITER를 사용합니다. (꼭 $$가 아니어도 됩니다.) 2. 다음은 프로시저를 생성하는 단계입니다. CREAT PROCEDURE 이름()으로 생성합니다. 3. BEGIN 을 시작으로 프로시저 내용을 적습..

DB/mysql(mariaDB) 2022.06.19

mysql stored procedure(저장 프로시저) 란?

mysql에는 sp(stored procedure)이 있습니다. 이는 저장된 sql을 순차적으로 실행하는 프로그램으로 질의 형식만 가능한 sql에 절차적인 실행을 가능하게 해주는 방법입니다. 이는 oracle에선 pl/sql이라고 불리며 mysql은 sp라고 불립니다.(정확히는 다르지만 sql을 절차적으로 실행하게 해줍니다.) 많은 분들이 장점과 단점을 말씀하시고 극명히 나타나는 장점과 단점도 있습니다. 장점 -빠른 처리속도(더하기 등의 사칙연산은 제외) DB에서 직접 데이터를 처리하여 더 빠른 속도의 처리가 가능 합니다. -높은 보안성 각 sp간의 보안이 개별화 되어 있어 일차적인 해킹을 막습니다.(sql injection 등) -높은 재활용성 필요한 부분의 sp를 만들고 이를 호출하여 데이터만 받아오..

DB/mysql(mariaDB) 2022.06.06

iBATIS는 무엇인가?

***기본적으로 egov가 ibatis를 사용하므로 mybatis와 함께 알아두어야 합니다.*** iBATIS(아이바티스)는 SQL에 기반한 데이터베이스와 자바, 닷넷(.NET), 루비(Ruby) 등을 연결시켜 주는 역할을 하는 영속성 프레임워크(Persistence Framework)이다. 이러한 연결은 프로그램의 소스코드에서 SQL 문장을 분리하여 별도의 XML 파일로 저장하고 이 둘을 서로 연결시켜주는 방식으로 작동한다. 또 다른 영속성 프레임워크인 하이버네이트(Hibernate)와 비교하여 하이버네이트는 객체모델을 사용자가 생성을 하면 프레임워크에서 데이터베이스와 연결을 시켜주는 방식인데 반해 iBatis는 사용자가 SQL 문장을 만들면 그에 적합한 객체모델을 생성하는 방식으로 작동한다. http..

BACK END/iBATIS 2022.05.25