본문 바로가기

프로그래밍 언어69

728x90
반응형
regular expressions 101 - 정규식을 온라인에서 작성하고 테스트할 수 있는 사이트 정규식을 프로그램 안에서 테스트하기 번거로울 때가 많다. 이 경우 regular expressions 101을 활용하면 온라인에서 별도의 설치과정 없이 정규식을 작성하고 테스트할 수 있다. 사이트 주소: https://regex101.com/ regular expressions 101는 정규식 작성용 서비스에 특화되어 있기에 테스트 도구부터 참고문서까지 다양한 내용을 한 화면에 보여줘서 편리하다. 2023. 1. 20.
[자바/Java] 주석(Comment) 동영상 설명 5강. 자바에서 주석이란 자바에서 주석이란 프로그래밍을 하는 도중에 메모가 필요한 경우가 있다. 자바에서는 소스 코드 안에 이러한 메모를 할 수 있도록 주석(Comment)을 지원한다. 주석처리한 곳에 기입한 내용은 프로그램 실행과 무관하다. 컴파일 과정에서 해당 내용이 제외된다. 주석이 필요한 경우 프로그램 설명을 소스 코드 안에 글로 남기기 위해서 소스 코드 분석에 용이하도록 소스 코드 안에서 코드를 설명하기 위해서 주석을 선언하는 방법 자바에서 주석을 선언하는 방법은 두 가지가 있다. 한 줄만 주석처리를 하는 '//'와 여러 줄을 주석처리하는 '/* */'가 있다. 문법은 다음과 같다. 한 줄만 주석처리 하기 // 한 줄만 주석처리 합니다. 여러 줄을 주석처리 하기 /* 여러 줄을 주석.. 2023. 1. 5.
[자바/Java] 타이머로 지연 실행하고 반복 실행하기 필요성 특정 연산을 너무 자주 수행하여 리소스가 낭비되는 것을 해소하기 위해서 혹은 시간적으로 동기화를 수행해야 하는 경우에 자바의 Timer 클래스를 활용할 수 있다. 지연 실행 방법 아래의 소스 코드에서 run 메소드 안에 수행할 내용을 입력하고 schedule 메소드를 호출할 때 두 번째 인자 값에 지연시킬 시간을 밀리초(ms) 단위로 입력한다. Timer timer = new Timer(); TimerTask timerTask = new TimerTask() { @Override public void run() { // 동작할 내용 } }; timer.schedule(timerTask, 1000); 지연 실행 예제 코드 예제 소스 코드 주소: https://github.com/Engineering.. 2022. 12. 13.
[자바/Java] 수행 시간 확인 방법 필요성 프로그램의 느린 부분을 찾고 개선하기 위한 업무를 수행할 때 수행 시간을 확인한다. 코딩방법 아래의 코드처럼 시스템의 시간을 두 번 가져와서 시작시간과 끝시간의 차이를 구해 프로그램의 수행 시간을 확인할 수 있다. long start = System.currentTimeMillis(); ...(처리할 내용) long end = System.currentTimeMillis(); System.out.println((end-start)+" ms"); 코딩 예제 예제 소스: https://github.com/EngineeringCode/study-java/blob/main/src/com/hcpark1993/example/system/ProcessingTimeExample.java 실행 결과 위의 예제 소.. 2022. 12. 12.
"please select a valid python interpreter"가 나타날 때 조치 방법 최근 몇년동안 점유율이 급등한 파이썬(Python)이지만 아직도 버전 관련 호환성 이슈가 있다. 파이참(PyCharm) 2022.2.3 버전에서 "please select a valid python interpreter" 메시지가 나타난다면 아래의 순서로 해결할 수 있다. 파이썬 인터프린터가 설치되었는지 확인한다. 아래의 사진처럼 파이참의 파이썬 인터프린터 설정에 가서 파이썬 인터프린터 설정을 한다. 설정을 할 때 분명히 파이썬 인터프린터가 설치되었고 정상동작하는데 오류 메시지가 나타난다면 파이참과 파이썬 버전 호환 문제이므로 파이참 버전을 구버전으로 낮추면 해결이 가능할 수 있다. 2022. 11. 9.
자바에서 처리를 지연(딜레이, Delay)하는 방법 자바 프로그램의 처리를 지연하는 방법은 아래와 같다. 필자의 경우 스프링 프레임워크 등으로 작성한 자바 프로그램에서 동기 관련 트러블 슈팅 용도로 사용한다. 스레드 클래스 활용 방법 try { Thread.sleep(시간); // 단위 ms } catch (InterruptedException ie) { Thread.currentThread().interrupt(); } 참고문서 [1] "Class Thread", 오라클 JDK 8. @원문보기 2022. 11. 8.
[자바/JAVA] 'System.out' 표준 출력으로 문자 출력하기 동영상 설명 2강. 'System out' 표준 출력으로 문자를 출력하자 필요성 프로그램이 사용자에게 글자를 보여줘야할 때 자바에서는 'System.out' 이라는 표준 출력 클래스를 활용할 수 있다. 현재 시스템의 출력 환경에 대응하여 출력하므로 편리하다. 코딩 방법 표준 출력 클래스에는 여러 메서드가 있다. 본 글에서는 print(), println(), printf()를 설명한다. 아래와 같이 사용할 수 있다. System.out.print() System.out.print(입력값); System.out.println() System.out.println(입력값); System.out.printf() System.out.printf("형식지정자", 입력값); 코딩 예제 예제 소스: https://g.. 2022. 10. 24.
윈도우에 OpenJDK 8을 설치하자 OpenJDK 8을 사용하는 이유 OpenJDK를 사용하는 이유는 여러가지가 있겠지만 보통은 라이센스 때문이다. 하지만 나처럼 알고리즘 공부 때문에 사용하는 경우도 있다. 특히 SW Expert Academy의 경우 OpenJDK 8를 지원하기 때문에 OpenJDK 8을 사용할 수 밖에 없다. OpenJDK 윈도우 설치 방법 OpenJDK를 설치하기 위해 아래의 주소로 이동하여 윈도우에서 OpenJDK를 쉽게 설치할 수 있도록 빌드해놓은 것을 다운로드 받는다. OpenJDK 윈도우 빌드: https://github.com/ojdkbuild/ojdkbuild 아래의 사진처럼 인스톨러를 다운로드가 완료되면 실행한다. 'Next' 버튼을 누른다. 약관에 동의하고 'Next' 버튼을 누른다. 기본값으로 설치할 .. 2022. 10. 11.
[Java] 표준 출력 사용하기 println(), print(), printf() 동영상 설명 2강. 'System out' 표준 출력으로 문자를 출력하자 개요 자바(Java)에는 표준 출력을 할 수 있는 메서드로 println()과 print(), printf()가 있다. 이 메서드는 System.out 클래스에 있다. 사용 방법은 다음과 같다. 예제 자료: https://github.com/EngineeringCode/study-java/blob/main/src/com/hcpark1993/example/io/SystemOutPrintExample.java println() 사용법 println()은 입력된 값에 개행문자가 함께 출력되는 메서드이다. System.out.println("문자열"); System.out.println("문자열"+"문자열"+변수); System.out.p.. 2022. 8. 31.
자바 프로그래밍 학습을 위해 자바와 이클립스를 설치하자 자바와 이클립스를 설치해야하는 이유 자바 프로그래밍을 공부하기 위해서는 자바(Java)와 이클립스(Eclipse)를 설치해야 합니다. 여기서 말하는 자바는 OracleJDK 또는 OpenJDK를 말하는 것인데 입문자가 본 글을 읽는 것을 생각하여 본 글에서는 OracleJDK를 자바라고 지칭하겠습니다. * JDK는 Java Development Kit의 약자로 자바 개발 도구모음를 말합니다. 현재는 오라클 사가 OracleJDK와 OpenJDK를 모두 관리하고 있지만 OracleJDK의 경우 상업적으로 이용하려는 경우 비용이 발생하는 단점이 있지만 릴리즈 주기가 길고(3년) 오랜 기간 기술 지원을 제공한다는 점이 장점입니다. OpenJDK의 경우 무료로 사용이 가능한 장점이 있지만 릴리즈 주기가 짧고(6.. 2022. 7. 1.
윈도우에 OpenJDK 14를 설치하자 OpenJDK 14를 설치하는 이유 자바8을 기반으로 알고리즘을 구현하는 중에 해설에서 사용된 메서드가 나의 프로그램에서 지원되지 않아서 알아보니 신버전의 자바에 추가된 메서드였다. 확실히 코딩량이 확 줄어드는 효과가 있었고 코딩테스트 플랫폼에서 지원하는 버전이라 OpenJDK 14를 내 컴퓨터에 설치했다. OpenJDK 14 다운로드 OpenJDK의 공식 홈페이지는 https://openjdk.org/ 이지만 여기서 받으면 설치가 아래의 사진처럼 설치가 번거로운 형식을 지원하기에 나는 인스톨러 형식으로 빌드된 것을 다운받아서 설치할 것이다. 윈도우 인스톨러 형태로 빌드되어 있는 것을 아래의 주소에서 받을 수 있다. 아래의 사진처럼 찾아서 다운로드 링크를 누르자. OpenJDK : https://gith.. 2022. 6. 25.
[.NET] "hostfxr.dll could not be found" 오류 해결법 .NET으로 만든 프로그램을 배포하다보면 "hostfxr.dll could not be found"라는 오류 메세지가 아래의 사진처럼 나타날 때가 있다. 내용을 살펴보면 .NET 실행환경이 구축되어 있지 않아서 발생하는 문제이며 .NET Runtime을 설치하면 해결된다. 내용 중에 다운로드 링크가 있는데 저 링크를 통해서 다운받으러 가도 되고 아니면 필자가 아래에 입력한 링크로 가서 받아도 된다. .NET 다운로드 주소 : dotnet.microsoft.com/download 사용하고자 하는 버전의 .NET을 적절히 다운 받아서 설치하면 된다. 실행만 한다면 Runtime만 설치해도 된다. 2021. 4. 6.
[C#] 프로젝트 프레임워크를 .NET 5.0으로 변경하기 여러가지 이유로 .NET 5.0으로 C# 프로그램을 개발해야할 때가 있다. 나는 C# 프로그램을 개발할 때 Visual Studio 2019를 사용하고 있는데 예전에 설치한 버전이라서 5.0 런타임을 설치하고 다른 종속성 패키지들도 업데이트할 필요가 있었다. 하지만 설치 및 업데이트 후에도 '프로젝트 속성'-'애플리케이션'-'대상 프레임워크'에서 .NET 5.0이 아래처럼 설정 목록에 없었다. 이 경우는 텍스트 에디터로 프로젝트 설정을 바꿔주면 된다고 MSDN(Microsoft Developer Network) 문서에 있었기에 아래처럼 내용을 확인하고 바꾸니 .NET 5.0으로 잘 설정되었다. 프로젝트 설정 파일은 프로젝트 폴더로 가서 '프로젝트명.csproj'으로된 파일이다. 이 파일을 메모장이나 자신.. 2021. 4. 3.
구글 블로거 API의 글 등록은 사용량에 제한이 있다. 이전에 구글 블로거 API를 사용하는 방법을 소개하는 글을 썼었다. 그 중에 구글 클라우드 플랫폼 내의 API 사용량 자체는 제한이 없는데 구글 블로거 서비스에서 제한을 두고 있는 것을 찾았기에 기록하려고 글을 쓴다. 구글 블로거 API로 글을 등록하는 경우 하루에 글 등록이 최대 100개로 제한이 된다. 100개를 초과해서 글을 등록하려고 하면 다음과 같은 오류 메시지가 나타난다. "We're sorry, but one or more limits for the requested action have been exceeded. [403]" 403이라는 숫자는 HTTP에서 일반적으로 권한이 없음을 나타내는데 메시지 내용을 보아하니 요청한 액션을 수행할 수 있는 횟수를 초과한 것으로 나온다. 혹시나 싶어서 .. 2021. 1. 14.
[C#] HttpClient로 이미지를 받아서 저장하기 HttpClient로 이미지를 받아서 저장하는 코드를 기록용으로 남겨둔다. 예제의 소스는 이해를 돕기 위해 주제와 관련된 기능 외에는 사용하지 않았다. using System.Net.Http; namespace Program { class Program { static async System.Threading.Tasks.Task Main(string[] args) { HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync("https://www.google.com/logos/doodles/2021/new-years-day-2021-6753651837108820-law.gif"); byte[] res.. 2021. 1. 1.
[C#] 셀레니움에서 Timeout 또는 OutOfMemory가 발생하는 문제 C#에서 셀레니움을 활용하여 크롬 웹브라우저를 제어하고 있으면 몇시간 후에 크롬 웹브라우저로부터 응답이 없다고 Timeout 오류가 발생하거나 OutOfMemory에러가 발생하여 제어불능에 빠지는 상황이 발생한다. OpenQA.Selenium.WebDriverException: The HTTP request to the remote WebDriver server for URL http://localhost:65320/session/2c1547c846178882ccf6af559244ec4e/url timed out after 60 seconds. ---> System.Net.WebException: The operation has timed out. at System.Net.HttpWebRequest.Ge.. 2020. 12. 28.
[자바스크립트] img 태그의 데이터를 base64로 인코딩 하자 HTML의 img 태그의 src에 파일 경로가 아닌 데이터를 직접 넣어도 브라우저가 인식하는 시대가 왔다. 데이터를 넣을 때는 base64로 파일 데이터를 인코딩해서 넣으면 되고 다음과 같이 표현이 가능하다. BASE64로 인코딩된 img 태그 예시 위의 img 태그를 넣으면 아래와 같은 그림이 표현된다. 자바스크립트에서 기존의 이미지 파일을 base64로 인코딩하는 방법은 2가지가 있다. 하나는 HTML5 CANVAS를 이용하여 변환하는 것이고 또 다른 하나는 자바스크립트의 File API인 FileReader를 이용하여 변환하는 방법이 있다. HTML5 CANVAS를 이용하는 방법 CANVAS를 생성하고 이 CANVAS의 가로와 세로의 크기를 설정하고 그릴 것을 2D로 지정한다음 BASE64로 변호나.. 2020. 12. 27.
[C#] 셀레니움(Selenium)으로 크롬(Chrome)을 제어하자 #에서 브라우저를 제어하여 특정 정보를 읽어와야하는 경우가 있다 이 경우 셀레니움(Selenium)을 통해 브라우저를 제어할 수 있는 방법이 있다. 이번 포스트에서는 셀레니움으로 크롬(Chrome) 브라우저를 제어하는 예제를 소개하려고 한다. 매번 C# 관련 포스트에서 그러하듯이 우리의 친구 NuGet 패키지 관리자를 실행하여 셀레니움 관련 라이브러리를 설치하도록 하겠다. Visual Studio 2019 상단의 '도구'-'NuGet 패키지 관리자'-'솔루션용 NuGet 패키지 관리...'를 클릭하여 NuGet 패키지 관리자를 실행한다. Selenium을 입력하여 Selenium.WebDriver를 선택한 후 설치한다. 설치를 진행하기 위하여 변경될 내용을 미리 보여주는데 확인하고 '확인'을 누른다. 셀.. 2020. 12. 25.
[C#] 구글 블로거 API로 글 등록하는 법 한국을 소개하는 영어 블로그를 운영하려고 하는데 글을 편하게 쓰기 위하여 구글 블로거 API로 글을 등록하는 예제 프로그램을 작성해보았다. 글 등록 예제 소스코드 using System; using System.IO; using Google.Apis.Blogger.v3.Data; using Google.Apis.Blogger.v3; using Google.Apis.Auth.OAuth2; using Google.Apis.Util.Store; using Google.Apis.Services; using System.Threading; using System.Threading.Tasks; namespace InsertPost { class InsertPost { static void Main(string[] .. 2020. 12. 23.
[C#] 구글 블로거 API 라이브러리를 설치하는 법 구글 블로거 API 기능을 C#에서 활용하여 개발하기 위해서는 구글 블로거 API 라이브러리를 설치하는 것이 편리하다. 구글 블로거 API 라이브러리는 Visual Studio 2019에서 NuGet 패키지 관리잘로 쉽게 설치가 가능하다. NuGet 홈페이지로 가면 현재(2020-12-23) 기준으로 1.49.0.2172가 안정적인 버전으로 출시되어 있는 것을 확인할 수 있었다. NuGet 패키지 관리자는 '도구'-'NuGet 패키지 관리자'-'솔루션용 NuGet 패키지 관리...'을 눌러서 실행할 수 있다. '찾아보기'에서 google.apis.blogger.v3를 입력하여 검색하고 클릭하면 우측에 설치 버튼이 나타난다. 설치를 원하는 프로젝트를 클릭하여 설치 버튼을 누른다. 설치를 누르면 위와 같이 .. 2020. 12. 23.