Programming70 [Servlet] 서블릿 실행 시간 측정 필터 만들기 (Servlet Performance Time Check Filter) 서블릿에서 필터를 활용하여 모든 서블릿의 동작시간을 체크하는 로직을 정리해두려한다. 만약 필터 없이 페이지마다의 실행 속도를 체크하고 싶으면 해당 클래스마다 타이머 작업을 해줘야하는데 필터를 활용하여 모든 페이지의 퍼포먼스 시간을 체크할 때 사용하면 좋을 것이다. package com.unittest.performance; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.s.. Programming/Spring 2022. 2. 1. [Java] 정적(Static) 변수와 메서드란? (개념 / 사용 장 단점 / 사용 시기 / 예제) 서론 객체언어에서 사용되는 static과 인스턴스의 변수 및 메서드의 내용을 정리해보려한다. 해당 내용은 기초적인 내용이지만 자세히 인지하지 못하고 넘어갈 수 있는 부분이기에 초기에 잘 잡고 가는 것이 좋을 것같다. ** Static 메서드와 Instance 메서드 개념 ** Static 메서드란? (클래스 메서드) 객체 생성 없이 "클래스.메서드()" 형태로 호출 하는 방식. 인스턴스 멤버와 관련 없는 작업을 하는 메서드이다. 메서드 내에서 인스턴스 변수를 사용할 수 없다. Static 사용의 장점 1. 메모리를 효율적으로 사용이 가능하다. > 생성할 때 마다 인스턴스가 힙에 올라가는 것이 아닌 고정 메모리 이므로 보다 효율적이다. 2. 속도가 빠르다. > 객체를 생성하지 않고 사용하기 때문에 속도가 .. Programming/Java 2022. 1. 20. C# 박싱과 언박싱이란? (개념 / 예제 / 사용 이유) 서론 이번 글에서는 평소 프로그래밍을 할 때 몰라도 개발은 가능하지만 프로그램에서 사용되는 메모리가 많거나 메모리 관리가 필요하다면 필히 알아야 하는 박싱과 언박싱에 대한 내용을 정리해 볼 것이다. 추가적으로 변수를 사용함에 있어서 알아야하는 값 타입과 참조 타입에 대해서도 정리해볼려한다. 값 타입과 참조 타입이란? 1. 값 타입 (Value Type) 값 타입은 스택영역에 저장한다. 값 타입은 Object를 상속받은 System.ValueType을 상속받은 구조체이다. ex) int => System.Int32로 정의 되며, 상속 관계는 Object ->ValueType -> Int32 순 데이터에 직접 값이 저장된다. 2. 참조 타입(Reference Type) 힙에 저장된다. 모든 타입의 Base .. Programming/C# 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. 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. C# Properties.Settings.Default의 설정 값은 어디에 저장이 될까? (app.config 관리) 서론 나는 여지껏 App.config에 값을 관리할때 Properties.Settings.Default.Save()를 하면 app.config에 적용이 되어 값이 관리되는줄로알고 해당 문법을 사용해왔었다. 그런데 !! 최근에 config에 값을 수정한 후에 해당 .exe파일과 .config파일을 다른 곳에 옮겨서 사용해보니 수정한 값이 없어지고 처음 설정한 초기 기본값으로만 잡혀있는 것이였다. 당황감속에 config파일을 열어봤다. 실행경로에 있는 config에 수정한 값들이 하나도 적용이 안되어 있는 것을 마주했다.. 난 당연히 Save()하고 난 뒤에 프로그램을 껐다켜도 저장이 되어있기에 app.config에 저장이 되어 관리가 되고있겠지란 생각을 하고 사용해왔는데 너무 당황스러웠다. 이것을 어떻게 .. Programming/C# 2022. 1. 6. [VisualStudio] .net 5.0 종속성에 어셈블리(dll) 추가가 안될 때 !!! 서론 없이 어떤 문제 발생 내용과 어떻게 해결했는지 알아보자. 문제 발생 내용 클래스 라이브러리에서 System.Window.Form.dll 을 참조 할려고 했는데 종속성에서 추가하면 자꾸 이상한 문자가 반환되고 참조가 안됐었다. (2-1 이미지 참고) 해결 우선 종속성에서 dll추가를 찾아보기를 눌러서 Microsoft 폴더에서 해당 dll 검색하여 추가하니 정상작동. .net 5.0에서 기존 솔루션 탐색기에 참조라고 있던 것이 종속성으로 변경하였고, 해당 종속성에 기존 어셈블리(dll)을 추가할려고 하면 아래의 경로로 들어가서 추가할 dll 검색하여 추가해주면 된다. 아래 이미지 방식대로 종속성에서 COM 에서 검색해서 추가하면 자꾸 이상한 문자만 나오고 추가가 안되서 애좀 먹었었다. 문제 발생 ! .. Programming/C# 2022. 1. 5. C# 크로스 스레드(Cross Thread)란? (에러 발생 이유 / 해결 방법) 서론 Winform에서 스레드 환경을 구성해서 폼을 제어하다보면 아래의 사진과 같은 크로스 스레드 에러가 빈번하게 발생하는것을 확인 할 수 있을 것이다. 에러 내용 : 크로스 스레드 작업이 잘못되었습니다. 'Textbox' 컨트롤이 자신이 만들어진 스레드가 아닌 스레드에서 액세스 되었습니다. 에러가 발생하는 이유 ? 폼 구동 시 실행되는 하나의 쓰레드에서 Winform 컨트롤을 관리하게 되는데 해당 특정 스레드가 관리하고 있는 컨트롤을 다른 스레드가 액세스하였을 때 발생한다. 다시 말하면 winform 컨트롤을 생성한 스레드가 아닌 다른 스레드가 속성을 바꾸는 작업을 요청했을 때 크로스 스레드 예외가 발생하는 것이다. 근데, 크로스 스레드는 특이한게 Debug모드에서만 실행되고 Release모드에서는 실.. Programming/C# 2021. 12. 29. C# DataTable의 LINQ식을 이용한 Join 방법 정리 (Datatable left Join / Inner Join) 서론 이번 글에서는 C#에서 SQL 연결을 해서 값을 받아와 사용한다면 거의 항시 사용하게 되는 DataTable의 데이터를 가져오는 방법을 정리할 것이다. 가져오는 방법은 단일 테이블 조회 시 datatable.Select("조건")함수를 써서 값을 조회 할 수 있지만 다중 테이블 간의 키 값으로 join을 사용해야되는 경우에는 Select()로 가져오기 힘들기 때문에 LINQ식의 join을 이용한 데이터 추출 방법을 정리해본다. 정리할 내용은 이렇다. LINQ를 활용한 JOIN 사용법 > inner join, left join 용법을 이용한 테이블 및 변수 값 가져오기 LINQ를 활용한 JOIN 사용법 1) LINQ - Inner Join var innerJoin = from alias_tb_a in.. Programming/C# 2021. 12. 28. C# 단위 별 실행 시간 확인 하는 방법 (단위 테스트/UnitTest) 프로그램을 만들다 보면 해당 로직이 다 실행되는데 얼마나 걸리는지 궁금할 때가 있다. 그럴 때 아래의 방법을 사용하면 Start를 하고 End할 때 까지의 시간을 찍어볼 수 있다. // 타이머 시작 System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); /* 시간 체크 할 로직 */ //타이머가 실행중이라면 종료 if (sw.IsRunning) { sw.Stop(); System.Diagnostics.Debug.WriteLine("END TIME :: " + sw.ElapsedMilliseconds.ToString() + "ms"); } 위의 방식을 사용하여 시간 퍼포먼스를 체크할 때 사용하면 좋을 것 같다. Programming/C# 2021. 12. 22. [Flutter #01] 플러터란 무엇일까? 서론 최근 앱 개발 트렌드 기술을 찾아보다 dart라는 구글에서 개발한 언어로 크로스 플랫폼이 가능한 강력한 프레임워크라고 하여 해당 언어를 공부하기로 마음먹었다. 필자는 웹 개발, 애플리케이션 개발은 해봤지만 앱개발은 한번도 안해본 영역이여서 더 끌렸다. 차근차근 진행하여 최종적으로 배포까지 목표로 진행해보겠다. Flutter로 만든 앱 - 네이버 지식인 - Google Play - Google Pay - Google AdSense - Google Assistant - Ebay Motors (flutter + firebase 통합하여 진행) - BMW App 특징 - 크로스 플랫폼 개발 프레임워크로, 안드로이드 및 IOS 애플리케이션을 구축할 수 있다. - 개발환경 IDE는 VScode와 안드로이드 스.. Programming/Flutter 2021. 12. 21. [Flutter #00] Dart 언어에 대해 알아보자! 플러터의 언어인 Dart란? 플러터를 알아보기 앞서 해당 언어인 Dart에 대해 간략히 알아보자. Dart는 구글에서 javascript를 대체하기 위해 2011년 발표한 신 언어였다. 그렇지만 이 Dart는 나오고 몇년 안 지나 최악의 언어라고 무시받기 일쑤였다. 그 이유는 js의 시장은 이미 jQuery가 장악한 수준이였는데 개발자 입장에서 Dart라는 신 언어를 사용하기엔 러닝 커브가 높을 수 밖에 없고 적은 레퍼런스와 낮은 활용도로 배울 필요가 없는 언어였다. 그래서 그런지 2018년 조사에서는 Dart가 배울필요없는 언어 1위라는 타이틀까지 차지했다고 한다ㅠㅠ 그렇지만 !! 점점 Flutter가 RN(React Native)라는 언어에 대항할만한 앱개발 적수가 되가면서 다시 Dart라는 언어가 .. Programming/Flutter 2021. 12. 21. 이전 1 2 3 4 5 6 다음 💲 많이 본 글