데이터 베이스 어플리케이션을 C#을 이용해서 개발하려고 합니다.
개발 관련 자료에서는 주로 DBMS에 직접연결해서 SQL문을 직접 날리는 식으로 되어 있는데,
실제로는 보안상, DB서버와 클라이언트 어플리케이션 사이에 미들웨어를 끼워야 한다고 하더라구요
SQL 직접 사용하는 것은 미들웨어에서 하구요.
만약에 이러한 방식 (3 tir?)으로 할 경우, 미들웨어는 어떤 프로그램을 사용하나요?
검색을 해보니 주로 웹서버가 미들웨어에 들어가는데 현재 개발하려는 프로그램은 웹이 아니고
일반 응용프로그램 (c#)이라서 난감하네요.
보안의 이유로 사이에 미들웨어가 끼여있어야 하는 이유가,
c# 으로 개발된 프로그램이 직접 db에 접속한다
= db접속정보가 프로그램 내에 있는 등 사용자의 pc에 존재하고 접속 가능한 상태이다
= 사용자에게 db 접속 정보가 탈취되어 사용자가 임의의 쿼리를 질의할 수 있다
라서 권한 확인 등의 작업을 별도로 하는 미들웨어를 둬서 db 를 보호하는 측면이거든요.
즉, 만약 프로그램 사용 대상자가 해당 디비에 접근 권한을 가지거나 이러한 리스크가 감수되는 소규모 특수목적 프로그램 등이라면 굳이 미들웨어를 만들지 않으셔도 됩니다
회사정책상 데이터베이스서버를 구축하더라도 직접연결하면 안돼고 중간에 미들웨어 (웹서버)를 필히 둬야 한다고 하더군요 소규모로 사용하는데 궂이 미들웨어까지 개발해야 하는지 난감하고 궂이 미들웨어가 없더라도 보안상 문제만 없다면 사용 안하고 싶네요
보안상의 이유란게 제가 말한 내용들 때문인데, 그게 회사 정책이면 어쩔 수 없죠.....
규모자체가 작은게 중요한게 아니라 사용자 전원이 인가된 사용자/장비인가가 중요합니다.
설마 미들웨어가 돌아가는 피씨가 프로그램이 돌아가는 것과 같은 컴퓨터는 아니죠? 그렇다면 보안상 구분이 아무 의미 없습니다 (= 불필요한 정책이니 예외해달라고 해보시져ㅎㅎ)
아무리 소규모,대량접속하지 않는 환경이라도 백엔드 서버를 따로 두는건 당연하다고 생각됩니다.
1. 명목상으로라도 미들웨어가 있어야 한다 + C# 으로 직접 쿼리문 + ui 표시를 위한 연산까지 개발하실 계획이셨다면,
> 간단하게 spring data rest (orm 객체를 기반으로 rest api를 자동으로 만들어줍니다.
https://mulmandu17.tistory.com/56
(정말 기본적인 SELECT INSERT DELETE UPDATE를 자동으로 만들어주는 프레임워크로, 프로덕션에서 쓸 물건은 당연히 아닙니다만... 정책상 어쩔수 없이 도입해야 한다면 고려해보심이 어떨까요.)
c#개발자이시면 java 문법이 크게 러닝커브가 있지는 않을것 같습니다.