일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Exception in thread "main" java.lang.Error
- SQL Server 구성 관리자
- 데이터베이스
- IT story
- System.Text.Json
- C#
- git
- java
- MSSQL
- 권한
- SOP
- jpa
- RAISERRR
- IT
- ERROR_MESSAGE
- springboot
- Newtonsoft.Json
- 스프링 시큐리티
- SSMS
- ORM
- cors
- .NET 8.0
- SQL Server
- 스프링부트
- JavaScript
- 자바
- OUT 파라미터
- 프로시저
- github
- DB
- Today
- Total
목록분류 전체보기 (45)
its_jh_stroy
동일 출처 정책(Same-Origin-Policy)웹에서 기본적인 보안 원칙 중 하나이다. 여기서 말하는 출처(Origin)란 URL의 세 가지 구성 요소를 의미한다. - 프로토콜 - 도메인 - 포트 번호 동일 출처 정책은 자신과 동일한 출처에서만 접근할 수 있도록 제한하여 데이터를 보호하는 정책이다. 정책에 따라 웹서버에서는 동일한 프로토콜과 도메인, 포트에서 요청된 접근만 허용하게 된다. 만약 "https://first.com:443"이라는 출처에서는 "https://second.com:443"에 해당되는 출처에 접근할 수 없는 것이다. 하지만 필요에 따라 이러한 제한을 넘어서 다른 출처에 접근해야 하는 상황이 있다. 예를 들어, 개발중인 웹 화면과 서버를 담당하는 프로젝트를 분리하여 백엔드와 프론트..
.NET에서 JSON과 관련된 라이브러리는 System.Text.Json과 Newtonsoft.Json가 많이 사용된다. 두 라이브러리는 모두 JSON 문자열과 .NET 객체 간 직렬화와 역직렬화를 수행하지만 몇 가지 차이점이 있다. 1. 대소문자 구분대소문자를 구분하는 System.Text.Json과 달리 Newtonsoft.Json은 대소문자를 구분하지 않는다. MVC 패턴에서 컨트롤러가 뷰에 전달하는 JSON 데이터는 CamelCase 형식으로 전달되는 경우가 많은데, .NET 객체의 속성은 PascalCase로 작성되어 있다. 따라서 System.Text.Json를 사용하는 경우 속성명이 맞지 않다고 판단되어 값이 제대로 전달되지 않게 된다. 이것을 해결하기 위해 대소문자를 구분하지 않는 별도의 ..
결합도(Coupling)한 모듈(클래스, 함수 등)이 다른 모듈에 얼마나 의존하고 있는지 나타내는 지표를 결합도라고 한다. 결합도가 높다는 것은 한 모듈이 변경될 때 연관된 다른 모듈도 변경해야 할 가능성이 높다는 것을 의미하는데, 이것은 유지보수와 확장성에 부정적인 영향을 주게 된다. 따라서 낮은 결합도를 유지하여 모듈이 최대한 독립적으로 사용할 수 있도록 하는 것이 좋다. 결합도가 높은 코드다른 모듈을 직접 사용하는 경우, 한 모듈의 수정이 다른 모듈의 연쇄적인 수정을 일으킬 수 있다. csharp public class Order { private Customer _customer; public Order() { _customer = new Customer(); } } public class Rep..
.NET 8.0이 실행되는 과정ASP.NET Core 웹앱(Model-View-Controller)로 프로젝트를 만들어보면 MVC 패턴에 맞춰 여러 폴더와 파일이 생성된다. 프로젝트를 실행하면 Home 컨트롤러의 Index 페이지가 _Layout.cshtml 구조 안에서 호출된다. 만약 왜 이렇게 실행되는지 모른다면 웹 개발을 하는 데 있어서 상당한 어려움을 겪게 될 것이다. 따라서 프로젝트 구조도 어느 정도 파악할 겸 .NET 8.0 웹 애플리케이션이 실행되는 과정에 대해 정리해 보았다. 결과적으로 기본 프로젝트를 실행할 때 호출되는 순서는 아래와 같다. - Program.cs -> 컨트롤러(HomeController.cs) -> 뷰(Index.cshtml) -> 레이아웃 파일(_Layout.cshtm..

구름 IDE란? 개인적으로 프로젝트를 준비하는데, 데이터베이스 서버를 어떻게 할지 고민하다 구름 IDE를 찾게 되었다. 구름 IDE는 웹 브라우저에서 클라우드 기반의 개발 환경을 제공하는 플랫폼이다. 클라우드 기반으로 동작하기 때문에, 웹 브라우저만 있으면 언제 어디서든 코딩을 시작할 수 있다. 이것을 활용하여 단순 코딩뿐 아니라 서버를 구축하거나 협업을 할 수도 있다. 이번 포스팅에서는 MySQL 데이터베이스 서버를 구축하는 내용을 작성할 것이다. 구름 IDE에서 MySQL 데이터베이스 서버 구축하기 컨테이너 생성 https://ide.goorm.io/my/dashboard 위 사이트에서 로그인 후 "+새 컨테이너" 버튼을 클릭하여 컨테이너를 생성한다. 컨테이너 스택은 각자 개발하고자 하는 스택으로 선..
RAISERROR 프로그래밍 언어에서 Exception과 같이 오류를 발생시키고 오류 메시지를 반환한다. 발생된 오류 메시지는 ERROR_MESSAGE()를 호출하여 확인할 수 있다. RAISERROR는 세 개의 파라미터를 가진다. - 오류 메시지 - 심각도 - 상태 - 특별한 규칙이 없고 개발자가 자유롭게 설정할 수 있다. 심각도 RAISERROR 파라미터 중 심각도는 0 ~ 25 사이의 값을 가진다. - 0 ~ 10 : 경고 및 정보 메시지 발생 - SSMS에서 검정 글씨로 표현 - 11 ~ 18 : 프로그램 오류 메시지 - SSMS에서 빨간 글씨로 표현 - 18 ~ 25 : 치명적인 오류 - 오류 로그가 기록되고, 데이터베이스 연결이 끓어진다. RAISERROR는 단독으로 쓰일 수도 있지만, 프로시..
함수와 같이 쿼리의 집합을 프로시저라 한다. 프로시저 만들어 호출해보기 SSMS를 사용한다면 프로시저를 편하게 만들 수 있는 기능을 제공한다. - [개체탐색기] Databases - '사용할 DB' - Programmability - Stored Procedure - 마우스 오른쪽 클릭 - New - Stored Procedure... 프로시저를 만들기 위한 프레임을 가져올 수 있다. 위 과정을 통하지 않고 직접 타이핑해도 문제는 없다. 이어서 아래와 같은 형태로 프로시저를 만들 수 있다. CREATE PROCEDURE SP_SaveMenuInfo @id int AS BEGIN -- SET NOCOUNT ON; SELECT UserName, Age FROM TB_USER WHERE UserId = @id..
작업자 서비스 프로젝트에서는 Program.cs 파일을 통해 의존성을 주입할 수 있다. Program.cs 파일은 기본적으로 아래와 같은 형태로 되어있다. IHost host = Host.CreateDefaultBuilder(args) .ConfigureServices(services => { services.AddHostedService(); }) .Build(); await host.RunAsync(); ConfigureServices에 들어가는 Action 메서드를 수정하여 의존성을 주입할 수 있다. 주입할 의존성 타입 생성자에 파라미터가 필요 없는 경우도 있지만 필요한 경우도 있다. 각 경우에 따라 필요한 소스이다. 생성자 파라미터가 필요 없는 경우 //Program.cs IHost host = ..
WPF에서 웹 페이지 렌더링을 지원하는 기본적인 컨트롤은 WebBrowser이다. 하지만 WebBrowser 컨트롤은 IE 기반으로 페이지를 표시하기 때문에 최신 웹 표준을 지원하지 않는 경우도 존재한다. 따라서 페이지가 제대로 표시되지 않읗 수 있다. cefSharp 라이브러리를 활용하면 문제를 해결할 수 있지만 .NET Framwork에서 지원하기 때문에 .NET Core에서는 사용할 수 없다. .NET Core를 사용한다면 WebView2를 활용하여 이러한 문제를 해결할 수 있다. 라이브러리 설치 도구 - Nuget 패키지 관리자 - 솔루션용 Nuget 패키지 관리 Microsoft.Web.WebView2 설치 xaml 작업 Window 컨트롤에 아래 속성 추가 xmlns:wv2="clr-names..

pull request는 협업 중 내가 작업한 브랜치 병합을 요청하는 것이다. 작업할 원격(원본) 저장소가 아래와 같다고 가정한다. https://github.com/aaa/animals 해당 저장소에는 dog.txt 파일 하나만 있는 상태이다. 작업 파일 내려받기 1. 원격 저장소에서 Fork를 클릭하여 저장소를 가져온다. 가져온 저장소 url은 "https://github.com/bbb/animals"이라고 가정한다. 2. Fork한 저장소를 로컬에 내려받는다. git clone https://github.com/bbb/animals 작업 후 푸시 하기 1. 내려받은 파일에서 필요한 작업을 수행한다. 여기서는 cat.txt를 추가하는 작업을 했다. 2. 작업 내용에 맞는 브랜치를 만든다. // fea..