전체 글206 [Java] 정적(Static) 변수와 메서드란? (개념 / 사용 장 단점 / 사용 시기 / 예제) 서론 객체언어에서 사용되는 static과 인스턴스의 변수 및 메서드의 내용을 정리해보려한다. 해당 내용은 기초적인 내용이지만 자세히 인지하지 못하고 넘어갈 수 있는 부분이기에 초기에 잘 잡고 가는 것이 좋을 것같다. ** Static 메서드와 Instance 메서드 개념 ** Static 메서드란? (클래스 메서드) 객체 생성 없이 "클래스.메서드()" 형태로 호출 하는 방식. 인스턴스 멤버와 관련 없는 작업을 하는 메서드이다. 메서드 내에서 인스턴스 변수를 사용할 수 없다. Static 사용의 장점 1. 메모리를 효율적으로 사용이 가능하다. > 생성할 때 마다 인스턴스가 힙에 올라가는 것이 아닌 고정 메모리 이므로 보다 효율적이다. 2. 속도가 빠르다. > 객체를 생성하지 않고 사용하기 때문에 속도가 .. Programming/Java 2022. 1. 20. C# MSSQL 쿼리 실행 에러 - 실행 제한 시간을 초과했습니다. C# 프로그램에서 MSSQL로 쿼리문을 실행할 때 발생하는 에러 정리이다. RELASE모드에서는 발생하지않고 DEBUG모드로 실행하면 속도가 느리기때문에 간혹 발생하는 문제다. 말그대로 느리게 실행이 되기때문에 발생하는 문제이기에 CommandTimeout의 시간을 늘려주면 된다. CommandTimeout란? 명령 실행을 종료하고 오류를 생성하기 전 대기 시간(초 단위)을 가져오거나 설정하는 속성이다. 에러 메세지 "실행 제한 시간을 초과했습니다. 작업이 완료되기 전에 실행 제한 시간이 지났거나 서버가 응답하지 않습니다." 소스 using (var conn = this.CreateDbConnection()) { if (conn.HasConnection) { var query = "select * fro.. Error Document/C# 2022. 1. 17. C# 박싱과 언박싱이란? (개념 / 예제 / 사용 이유) 서론 이번 글에서는 평소 프로그래밍을 할 때 몰라도 개발은 가능하지만 프로그램에서 사용되는 메모리가 많거나 메모리 관리가 필요하다면 필히 알아야 하는 박싱과 언박싱에 대한 내용을 정리해 볼 것이다. 추가적으로 변수를 사용함에 있어서 알아야하는 값 타입과 참조 타입에 대해서도 정리해볼려한다. 값 타입과 참조 타입이란? 1. 값 타입 (Value Type) 값 타입은 스택영역에 저장한다. 값 타입은 Object를 상속받은 System.ValueType을 상속받은 구조체이다. ex) int => System.Int32로 정의 되며, 상속 관계는 Object ->ValueType -> Int32 순 데이터에 직접 값이 저장된다. 2. 참조 타입(Reference Type) 힙에 저장된다. 모든 타입의 Base .. Programming/C# 2022. 1. 16. [Refactoring 기법 #05] 메서드 정리 - 알고리즘 전환 ※ 오늘의 명언 코드 수를 기준으로 프로그램의 진도를 측정하는 것은 비행기 제작 진도를 무게로 측정하는 것과 같다. - Bill Gates 서론 이번 글에서는 메서드 안에 있는 알고리즘을 전환하는 방법에 대해 기술해볼 것이다. 목적 알고리즘을 더 분명한 것으로 교체해야 할 땐 해당 메서드의 내용을 새 알고리즘으로 바꿔보자. 작성 소스 String foundPerson(String[] people) { for(int i=0; i Refactoring/Refactoring Skill 2022. 1. 16. [IntelliJ] Community에서 Spring Initializr 설정하는 방법 인텔리제이(Intellij)에서 다운로드를 할 때 Ultimate와 Community가 있다. 나는 스프링을 진행하기 위해 새로운 프로젝트를 만들었는데 Community로 실행했을 때 Spring Initializr가 없어서 당황했다. 그 이유는 유료는 알아서 추가가 되어있는데 무료는 따로 추가를 해야줘야한다고 한다. 그래서 이 글에서는 Spring Initializr 추가하는 방법을 메모해놓을려고한다. 1. start.spring.io 접속 (구글에 Spring Initializr 입력해줘두 됨) https://start.spring.io/ 2. 본인이 사용할 프로젝트의 이름과 언어 설정하기 -> Artifact에서 사용할 프로젝트 이름 명시해주면 됨. 3. ADD DEPENDENCIES.. 눌러서 라.. Programming/Spring 2022. 1. 16. [MSSQL] Cursor문이란? (사용 방법 / 사용 이유 / 특징 정리) 커서(Cursor)란? 데이터 작업을 할 때 테이블에서 집합 단위가 아닌 행 단위로 처리를 해야할 때 사용하는 방식을 말한다. 보통 DML(SELECT, UPDATE, DELETE, INSERT)등으로 이뤄지며, 아래의 예시를 통해 확인해보자. 커서 특징 / 구조 특징 집합이 아닌 행 단위로 작업을 수행하기때문에 속도가 느리다. 프로그램에서 비유하면, 컬렉션을 루프를 돌려 한 인덱스 별로 처리하는 것과 같다고 보면 된다. 사용 방법 예제 시나리오 : "PEOPLE" 테이블에서 한 행마다 나이(age)를 1, 2, 3씩 커서문을 사용하여 증가시켜보자. 1. 테이블 생성 CREATE TABLE PEOPLE( NAME VARCHAR(10), AGE INT, ) INSERT INTO PEOPLE(NAME,AGE.. Database/RDBMS 2022. 1. 14. [Refactoring 기법 #04] 메서드 정리 - 임시변수를 메서드 호출로 전환 ※ 오늘의 명언 만일 디버깅이 벌레를 잡는 과정이라면, 프로그래밍은 그걸 집어넣는 과정이다. - Edsger W. Dijkstra, 구조적 프로그래밍, 세마포어로 유명한 컴퓨터 과학자 서론 이번에 공부할 내용은 메서드 정리 파트에서 임시변수를 메서드 호출로 전환하는 방법에 대해 서술해 볼 것이다. 작성소스 double basePrice = _quantity * _itemPrice; if(basePrice > 1000) return basePrice * 0.95; else return basePrice * 0.98; 위의 소스에서 어떤 것을 리팩토링 할 수 있을까? 책에서 제안하는 내용은 이렇다. "수식의 결과를 저장하는 임시변수가 있을 땐 그 수식을 빼내어 메서드로 만든 후, 임시변수 참조 부분을 전부 .. Refactoring/Refactoring Skill 2022. 1. 11. [Refactoring 기법 #03] 메서드 정리 - 임시변수 내용 직접 삽입 ※ 오늘의 명언 훌륭한 코드는 훌륭한 문서보다 낫다. - Steve McConnell, 개발자 서론 이번에 공부할 내용은 메서드 정리 파트에서 임시변수 내용 직접 삽입이다. 바로 시작해보자. 작성소스 private bool compareSumValue() { int temp_val = Calculator.Sum(1,2); return (temp_val > 2) } 위의 소스에서 temp_val은 Sum()이라는 함수에서 나온 결과물을 담아놓는 임시 변수이다. 리팩토링 책에서는 이렇게 제안한다. "간단한 수식을 대입받는 임시변수로 인해 다른 리팩토링 기법 적용이 힘들 땐 그 임시변수를 참조하는 부분을 전부 수식으로 치환하자" 위의 내용을 참고하여 리팩토링을 진행해보자. 리펙토링 후 소스 private bo.. Refactoring/Refactoring Skill 2022. 1. 9. [Refactoring 기법 #02] 메서드 정리 - 메서드 내용 직접 삽입 ※ 오늘의 명언 항상 이런 생각으로 개발에 임하라.“내 소스를 유지보수하게 될 개발자는내가 어디 살고 있는지 알고 싶어하는 과격한 사이코패스일 것이다.” - Martin Golding 서론 우리는 보통 어떠한 기능을 갖고 있는 로직들을 함수로 만들어 사용한다. 과연 기능을 갖고 있다해서 모두 함수로 만들어 사용하는 것이 좋은 소스라고 볼 수 있을 것인가? 바로 이 질문에 대해 이번 글에서 다뤄볼려고 한다. 작성 소스 int val = ?; private int getValue() { return compareValueCheck() ? 2 : 1; } boolean compareValueCheck() { return val > 5; } 위의 소스를 보면 int형은 val가 멤버변수로 선언되어있는 상태이고 .. Refactoring/Refactoring Skill 2022. 1. 9. C# .Net Framework와 .Net Core 5.0 어셈블리(dll) 참조하는 방법 서론 이번 원격 프로그램을 만드는 프로젝트를 진행 중 WPF의 자동화 어셈블리들을 추가하는 과정중에 설정 문제가 발생했다. 내가 사용하고싶은 참조는 System.Windows.Rect의 속성이였고 해당 속성을 사용하기 위해서는 WindowsBase를 참조해야했다. System.Windows.ResourceDictionary, System.Windows.Application.Current, System.Windows.Point 등 속성을 가진 using System.Windows을 참조하고싶다면 어떻게 해야할까? 방법은 간단하다. 솔루션 탐색기 - 프로젝트 더블 클릭 - csproj에서 true줄 추가 - 끝 해당 방식을 캡쳐 이미지로 간단히 정리해보겠다. 설정 방법 1. 솔루션 탐색기에서 프로젝트(원격제.. Programming/C# 2022. 1. 6. 이전 1 ··· 13 14 15 16 17 18 19 ··· 21 다음 💲 많이 본 글