Java는 항상 최신의 상태를 유지하고 있는 것이 좋지만 일단 자바가 설치되어 프로그램이 정상적으로 구동만 되면 상관없다고 생각하는 경우가 많기 때문에 대부분 업데이트를 신경 쓰지 않는 경우들이 많습니다. 오히려 매번 자바의 업데이트가 생길 때마다 아래의 사진처럼 "Java Update 사용 가능 새 버전의 Java를 설치할 준비가 되었습니다. 계속하려면 여기를 누르십시오." 라는 알림이 뜨는 것이 귀찮다고 생각하는 경우가 많죠. 이럴 때는 자바의 자동 업데이트 확인 기능을 꺼서 알림이 안 오도록 해줄 수 있습니다. 아래에서 소개드리는 2가지 방법 중 하나를 선택해서 진행하시면 됩니다. 자바 자동 업데이트 사용 하지 않기 1. 윈도우 작업표시줄의 검색창에서 제어판을 검색한 뒤 실행시킵니다. 2. 제어판에..
자바로 개발되어있는 프로그램을 실행시키기 위해서는 컴퓨터에 자바가 설치되어 있어야 합니다. 하지만 가끔 구버전의 자바를 사용하고 있어 프로그램들이 정상적으로 실행되지 않는 경우들이 있습니다. 이럴때는 자바를 수동으로 업데이트 시켜주어야 합니다. 이번 포스팅에서는 자바를 최신 버전으로 수동 업데이트 하는 방법에 대해 알아보도록 하겠습니다. 자바 최신 버전 수동 업데이트 방법 1. 작업표시줄 검색창에서 제어판을 검색한 후 제어판으로 들어갑니다. 2. 제어판에서 프로그램 아이콘을 클릭합니다. 3. Java 아이콘을 클릭하여 Java 제어판으로 들어갑니다. 4. Java 제어판의 상단 업데이트 탭을 누른 뒤 지금 업데이트 버튼을 누릅니다. 5. 설치버튼을 눌러 Java 업데이트를 시작합니다. 6. 자바 최신버전..
자바 언어로 개발하는 프로젝트에서 협업을 해야 할 상황이 있다면 개발자들끼리 JDK 버전을 맞춰주셔야 합니다. JDK 버전이 다르면 컴파일의 최적화 과정에서 서로 .class파일이 다르게 생성될 수 있고 이로 인해 같은 소스코드로 작성된 프로그램이라도 다르게 동작할 수 있기 때문입니다. ※ 자신이 사용하고 있는 Java 버전을 확인하고 싶다면 아래 글을 참고해주세요. [Java] 자바(JDK) 버전 확인 방법 (cmd 명령어) [Java] 자바(JDK) 버전 확인 방법 (cmd 명령어) 자바(Java) 언어로 하나의 프로젝트를 다수의 인원이 협업을 해야하는 상황이라면 Java jdk 버전을 맞춰주시는 것이 좋습니다. 개발자마다 jdk버전이 다르면 컴파일 과정에서 .class파일을 다르게 생 coding-..
자바(Java) 언어로 하나의 프로젝트를 다수의 인원이 협업을 해야하는 상황이라면 Java jdk 버전을 맞춰주시는 것이 좋습니다. 개발자마다 jdk버전이 다르면 컴파일 과정에서 .class파일을 다르게 생성할 수 있고 이로 인해 같은 소스코드라도 동작이 상이할 수 있기 때문입니다. 자바의 버전을 맞추기 위해서는 먼저 내 PC에 설치되어 있는 자바의 버전을 아는 것이 첫 번째 순서입니다. 이번 포스팅에서는 내 PC에 설치되어있는 자바 버전을 확인하는 방법에 대해 알아보도록 하겠습니다. 윈도우에서 자바 버전 확인 방법 (간단한 cmd 명령어) 1. 윈도우 검색창에서 cmd를 입력 후 명령 프롬프트를 실행합니다. 2. 명령 프롬프트 창에서 java -version 명령어를 입력합니다. (명령어 띄워쓰기 주의..
C언어로 간단한 슈팅게임을 만들어봤습니다. 혹시나 필요한 분이 있으시다면 받아가셔도 됩니다. 주석 나름대로 꼼꼼히 달았습니다. 프로젝트 안에 Stage_Info에는 스테이지 정보 그리고 각각의 Stage별로 적군의 숫자와 좌표들을 지정할 수 있습니다. C언어로 만든 간단한 슈팅게임 게임 화면은 위에 링크된 영상을 참고해주시면 될 것 같고 소스코드는 아래 링크된 깃에 올려두었으니 받아 가시면 됩니다. https://github.com/wjdxo513/ShootGame GitHub - wjdxo513/ShootGame: C언어로 만든 슈팅게임 C언어로 만든 슈팅게임. Contribute to wjdxo513/ShootGame development by creating an account on GitHub. ..
자바에서 가끔 두 날짜의 간격 예를 들어 두 날짜의 일수나, 시간, 분, 초등을 구해야 할 때가 있습니다. 이럴 때는 대개 두 날짜를 getTime을 활용하여 밀리 세컨드로 변환한 후 두 날짜의 차이를 계산한 뒤 원하는 단위로 바꾸는 작업을 통해 계산합니다. Date.getTime() Date.getTime()은 Date를 밀리세컨드로 변환해서 long형 숫자 데이터로 반환합니다. 이를 이용하면 산술 연산으로 시간 차이를 쉽게 구할 수 있습니다. 1000밀리초는 1초로 계산되므로 getTime()으로 구한 값을 밀리초를 1000으로 나누면 초를 얻습니다. 이 초를 기본으로 하여 다른 시간 단위들도 계산할 수 있습니다. 초 : / 1000 분 : / (1000 * 60) 시 : / (1000 * 60 * ..
개발을 하다보면 데이터베이스에 지정된 포맷의 날짜를 넣어야 할 경우들이 종종 있고 그렇게 되면 자연스럽게 이 데이터가 정해진 날짜 포맷에 맞는지 검증하는 로직이 들어가야 합니다. 날짜 포맷의 유효성 검사하기 (Validation Date) public class test { public static void main(String[] args) { String exDate1 = "2021/01/01"; String exDate2 = "20210101"; System.out.println(checkDate(exDate1)); System.out.println(checkDate(exDate2)); } public static boolean checkDate(String checkDate) { try { Sim..
자바에서는 문자열 String값의 값의 처음과 끝을 " " 이렇게 큰 따옴표로 인식하고 있습니다. 그렇기에 문자열 안에 큰 따옴표 자체를 넣을때는 \" 이런식으로 이스케이프 시퀀스를 활용하여 표현해주어야 합니다. 자바 문자열안에 큰 따옴표(") 넣기 String example = "\"url\" : \"https://www.naver.com\""; System.out.println(example); 위와 같이 \" 이스케이프 시퀀스를 통해 따옴표를 나타내면 문자열의 열고 닫음을 표현하는 예약문자로써의 기능이 아닌 따옴표 그 자체로 문자열 안에 포함시킬 수 있습니다. 이스케이프 시퀀스 위와 같이 이스케이프 시퀀스는 \와 다른 문자를 결합하여 프로그래밍 언어 특성상 표현할 수 없는 문자를 표현하거나 컴퓨터를..
자릿수가 많은 금액은 가독성을 향상시키기위해 3자리수 금액의 1000단위마다 콤마( , )를 찍습니다. 단 콤마( , )는 문자열이기 때문에 String타입에 저장해야 합니다. 숫자 사이에 콤마( , )를 찍는 방법은 대표적으로 java.text.DecimalFormat 클래스를 활용하는 방법과 정규식을 활용하는 방법이 있습니다. DecimalFormat 클래스 활용 int amount = 1000000000; DecimalFormat df = new DecimalFormat("###,###"); String money = df.format(amount); System.out.println(money); 정규식 활용방법 String amount = "1000000000"; amount = amount.r..
예외란? 예외란 문법적인 오류가 아닌 프로그램이 의도하지 않은 오류를 말합니다. 즉 개발자가 예상하는 동작을 제외한 나머지 전체라고 할 수 있습니다. 대부분의 경우 예외가 발생하면 시도했던 모든일들을 취소하고 그 전 상태로 되돌아가도록 프로그램을 작성합니다. 좀 더 심각한 경우라면 프로그램을 종료해야겠죠. 예외와 오류는 명백히 다릅니다. 오류가 났을때 프로그램이 터지는 현상을 막으려고 억지로 예외처리를 하여 동작시키려 하는것은 잘못된 행위입니다. 오류가 나지않도록 프로그래밍을 하는것이 가장 중요하고 오류가 난다면 그냥 프로그램이 터지도록 내버려두는 편이 낫습니다. try catch문 사용법 C언어에서는 예외처리를 조건문 if문으로 처리를 해왔습니다. if문으로 예외처리를 하는것도 잘못된것은 아니지만 좀 ..
C++ 문자열 클래스(string) 기존 C언어에서는 문자열을 다루기 위해서는 char[] 배열을 사용하였습니다. 그리고 끝에 null문자 '\0'을 넣어줌으로써 문자열이 끝이났다는것을 판별하였죠. 이렇게 사용하다보니 문자열 길이도 신경써줘야 하고 사용하는 과정에서 문자열도 자주 깨지는 등의 불편한 점이 굉장히 많았습니다. 이와 같은 불편함을 줄이기 위해 C++에서는 Java나 Python과 같이 문자열을 다루는 string 클래스를 만들어 사용할 수 있게끔 되었습니다. string 클래스에서는 문자열을 객체로 다룹니다. 사용하기 편리해진 만큼 컴퓨터가 해야할 일이 많아졌다는 것을 뜻합니다. string클래스를 사용하면 char[] 배열을 사용하는 방식보다는 다소 느려지는것은 어쩔수 없는 부분이긴 합니다..
연산자 오버로딩이란? 연산자 오버로딩이란 연산자를 재정의하여 사용자가 원하는 형태로 사용이 가능하게끔 하는것을 말합니다. 대부분의 기본 제공 연산자 함수는 전역 함수 또는 클래스로 재정의 가능합니다. 오버로드 된 연산자는 함수로 구현됩니다. 이렇게 재정의된 연산자 함수는 연산자를 이용하듯 호출할 수 있습니다. 이렇게 연산자들을 함수로 만들어서 넣어주면 사용자는 훨씬 더 간결한 방법으로 코드를 작성할수도 있고 코드의 확장성도 높아집니다. 연산자 오버로딩 사용시 주의점 1. C++에서 사용되지 않는 연산자는 재정의 할 수 없습니다. 2 기본 제공 데이터 형식에 적용할때 연산자의 의미를 다시 정의할 수 없습니다. 3. 오버로딩 한 연산자는 클래스 멤버함수이거나 전역함수여야만 합니다. 연산자 오버로딩 할 수 없..
클래스 생성 시 컴파일러가 자동으로 생성해주는 함수는 생성자, 소멸자, 복사 생성자, 복사 대입 연산자 이렇게 4가지가 있으며 이번 포스팅에서 다룰 내용은 복사 대상자와 복사 대입 연산자입니다. 생성자나 소멸자에 대해 궁금하시다면 아래 글의 생성자와 소멸자 부분을 참고해주세요. [C++] 클래스(Class) 사용법 & 예제 총정리 복사 생성자와 복사 대입 연산자란? 복사 생성자는 객체의 복사본을 생성할 때 호출되는 생성자입니다. 생성자나 소멸자와 마찬가지로 클래스를 작성할 때 복사 생성자를 생략하면 디폴트 생성자처럼 컴파일러가 알아서 만들어줍니다. 복사 대입 연산자는 같은 타입의 객체를 이미 생성되어 있는 객체에 값을 복사할 때 사용됩니다. 마찬가지로 따로 정의를 해주지 않을 경우 컴파일러가 알아서 생성..