본문 바로가기

728x90
반응형

프로그래밍&IT

(155)
[클린 코드] 1. 깨끗한 코드 정의 / 2. 의미있는 이름 클린코드 읽다가 말았는데, 이번에 다시 보고 있다.어디서부터 읽었는지 기억이 안나니 복습도 할겸 첨부터 보긴하는데,시작을 했으면 제대로 한 번 봐야 시간도 아끼는 것 같다. (필요하면 다시 볼수는있지만) 차례1. 깨끗한 코드2. 의미있는 이름 짓기1. 깨끗한 코드코드란?  요구사항을 상세히 표현하는 수단.- 의존성을 최대한 줄여야 유지보수쉬워진다. 깨끗한 코드는 한가지를 제대로 한다- 단순하고 직접적. 잘쓴 문장처럼 읽힌다. 설계자의 의도를 숨기지 않는다. 명쾌한 추상화와 단순한 제어문- 모든 테스트를 통과하며 , 중복이 없다, 시스템 내 모든 설계 아이디어를 표현- 작성자가 아닌 사람도 읽기쉽고 고치기 쉽다. 의미있는 이름. 의존성을 최소화하며. 의존하게되면 의존성을 명확히 정의하도록 한다.- 코드는 ..
[Winform] SuspendLayout / ResumeLayout & PerformLayout 에 대해서 나름대로 공부를 했다고해도 자꾸 잊게 되더라..여튼 이번엔 C# winform에서 쓰이는 SuspendLayout과 ResumeLayout (PerformLayout)관련해서 [C# winform] SuspendedLayout & ResumeLayoutUI 컨트롤의 레이아웃 업데이트를 효율적으로 관리하기 위해 사용되며, 이를 통해 불필요한 리소스 사용을 줄이고 성능을 최적화할 수 있다.SuspendLayout목적: 레이아웃 업데이트를 일시적으로 중단.여러 컨트롤을 추가하거나 크기 및 속성을 변경하는 작업 중에 레이아웃 업데이트가 계속해서 발생하는 것을 방지.성능 향상: 잦은 레이아웃 업데이트로 인한 성능 저하를 줄인다.ResumeLayout, PerformLayout목적: 중단된 레이아웃 업데이트를 다시..
"파일은 인터넷 또는 제한 영역에 있거나 웹 표시가 있으므로 ~ " 이상시 처리 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 오류 Form1.resx 파일은 인터넷 또는 제한 영역에 있거나 파일에 웹 표시가 있으므로 처리할 수 없습니다. 이러한 파일을 처리하려면 웹 표시를 제거하세요. ~ 개인적인 업무로 소스 파일을 다운로드받고 실행을 하려다보니 위와 같은 문제로 실행이 안된다. Power Shell 실행하고아래의 명령어 그리고 문제가 되는 파일이 있는 폴더 Path를 ""에 입력하고 실행한다gci -Recurse "" | Unblock-File 일단 위처럼 하니 처리는 되는듯..
데이터 베이스의 옵티마이저 (Database Optimizer)에 대해서 C# (Winfrom) UI만 개발하다보니 데이터베이스에 대해서 좀 소홀히 한 것도 있다.  데이터베이스의 옵티마이저 (Database Optimizer)SQL 쿼리가 어떻게 효율적으로 실행될지를 결정하는 핵심 요소.옵티마이저는 데이터베이스가 SQL 쿼리를 실행할 때 가장 적은 자원을 사용하면서 빠르게 결과를 반환할 수 있는 실행 계획을 선택하는 역할SQL 쿼리가 작성된 방식과 데이터베이스의 상태에 따라 크게 영향을 받는다.옵티마이저는 주로 아래와 같은 방식으로 SQL 쿼리를 최적화하게 된다.1. 실행 계획 생성SQL 쿼리가 입력되면 옵티마이저는 여러 실행 계획을 생성하여 가능한 모든 경로를 평가합니다.이때 각 경로는 인덱스를 사용하거나, 테이블을 스캔하거나, 조인 방식을 결정하는 등의 다양한 전략을 고..
[Database] 카타시안 곱 (Cartesian Product) Oracle뿐 아니라 전체적으로 같이 봐야할 항목이지만일단 IT 하는 사람으로서 어느정도는 알아야 할 것이기에... 카타시안 곱 (Cartesian Product) 이란?두 테이블의 모든 행을 조합하여 새로운 결과 집합을 생성하는 연산입니다. SQL에서는 JOIN 연산 중 하나로, 두 테이블 간에 조인 조건을 사용하지 않았을 때 발생하는 기본적인 조인 결과입니다.예를 들어, Table_A와 Table_B가 각각 3개의 행을 가지고 있다면, Table_A와 Table_B의 카타시안 곱을 실행할 경우 결과는 3×3=93 \times 3 = 93×3=9개의 행이 포함됩니다.SELECT * FROM Table_A, Table_B;-- 아니면SELECT * FROM Table_ACROSS JOIN Table_B;..
[Oracle] 인덱스 종류 그리고 인덱스를 이용하는 & 이용못하는 쿼리 오라클 데이터베이스를 다시 공부하다보니 여태 체크 못한 것이 있더라.앞으로계속 공부해가면서 틈새를 메워야겠다.목차오라클 인덱스 종류인덱스를 이용하는 & 못 이용하는 쿼리 오라클 인덱스 종류1. B-tree 인덱스가장 일반적으로 사용하는 인덱스 유형입니다.범위 검색 및 정확한 값 검색에 최적화되어 있습니다. - 타는 예시: EMPLOYEE_ID 컬럼에 B-tree 인덱스가 설정되어 있다면, 정확한 값 검색을 위해 인덱스를 타게 됩니다.SELECT * FROM EMPLOYEESWHERE EMPLOYEE_ID = 12345; - 타지 않는 예시EMPLOYEE_ID 컬럼에 연산이 포함되어 인덱스를 타지 못합니다.B-tree 인덱스는 컬럼 값의 직접적인 비교가 필요합니다.SELECT * FROM EMPLOYEES..
[Oracle] View에 대해서 알아보자 이제 오라클을 공부할 때가 온것같다.원래 UI위주 개발자지만, 사실 데이터베이스는 필수로 해야하는게 맞지만.이상하게 오라클하고는 잘 맞지않지만 이번에 View에 대해서 알아봐야하는데,오라클에 맞춰 조회를 해봤다.View란?View는 데이터를 조회하거나 구조를 정의하는 데 도움을 주는 논리적 개체 1. Simple View (단순 뷰)하나의 테이블에서만 데이터를 조회하는 View입니다.데이터 조작 작업(DML: Insert, Update, Delete)을 지원하며, 기본 테이블의 데이터 변경에 영향을 미칩니다.-- 예시 테이블: EMPLOYEESCREATE TABLE EMPLOYEES ( EMP_ID NUMBER PRIMARY KEY, NAME VARCHAR2(50), DEPARTMENT_..
보안 정책 : 화이트 리스트와 블랙 리스트 이번에 다른 대기업에 단기로 투입이 되었다.예상대로 꽤나 보안정책이 까다롭다..왠만한 사이트들은 모두 막아버린듯?. 보안이 중요한 건 알지만그래도 업무 효율성, 정보 취득성 등을 고려해야 하지 않을까? 하는 단순한 내 생각이다. 이에 보안정책 중 화이트 리스트와 블랙 리스트가 있다고 들었는데헷갈려서 다시 조사해보았다.보안 정책에 대해서 - 화이트 리스트와 블랙 리스트란?보안 정책에서 "화이트리스트"와 "블랙리스트"는 각각 특정 대상에 대해 허용 또는 차단하는 방식으로 보안을 관리하는 방법을 의미합니다.화이트리스트 (Whitelist)정의: 허용된 항목(예: IP 주소, 애플리케이션, URL 등)만 접근을 허가하는 방식.적용 예: 특정 네트워크 접근을 허용할 때 신뢰할 수 있는 IP 주소만 추가하거나, 안..
TextBox에 숫자만 입력하기 & 3자리마다 콤마(,) 찍기 C# Winform (윈폼)의 기본 컨트롤 TextBox에 값을 입력할 때 필요한 기능들을 정리해봤다.알고리즘매매만들다보니 보유종목별로 평균 매입단가 등을 입력하거나 출력을 위해서 필요한 기능이라 찾아봤다.프리랜서 일 구할때는 확실히 Java가 낫긴하지만, 개인 프로젝트 (사업?)을 할 때는 C# Winform 을 시작한게 나쁘진 않았다는 생각이다. 목차숫자만 입력하기 (단, 삭제를 위해선 Back space는 있어야겠지?)숫자 입력시 3자리마다 콤마 찍기 숫자만 입력하기 public static void Textbox_KeyPress_ToEnterDigit(object sender, KeyPressEventArgs e) { if(!char.IsDigit(e.KeyChar) && e.KeyChar ..
(2) Event 발행 (Publisher), 구독(Subscriber) 패턴에 대해서 저번 시간에 이어서 이벤트 발행 & 구독 패턴의 C# 실제 예제를 간단히 알아본다. 이전 포스팅2024.10.13 - [프로그래밍&IT/기타] - (1) Event 발행 (Publisher), 구독(Subscriber) 패턴에 대해서  C#에서 이벤트(Event)를 발행하고 구독하는 방식은 event와 delegate를 사용하여 구현할 수 있습니다.1. 이벤트 발행 및 구독 구조Publisher: 이벤트를 발행하는 클래스Subscriber: 이벤트를 구독하는 클래스using System;namespace EventExample{ // 이벤트를 위한 Delegate 선언 public delegate void NotifyEventHandler(string message); // 이벤트 발행 ..

반응형