티스토리

초급개발자의 기록
검색하기

블로그 홈

초급개발자의 기록

save-idea.tistory.com/m

초급, 중급 개발자를 넘어 고급 개발자가 되는 날이 오기를 희망하는 초급 개발자의 기록

구독자
0
방명록 방문하기
공지 이 블로그는 모두보기

주요 글 목록

  • HTTP GET 요청시 java.net.URISyntaxException 에러 해결 방법 HTTP GET 요청 시 java.net.URISyntaxException: Illegal character in scheme name at index 0 에러 해결 방법 HttpGet http = new HttpGet(192.168.0.xxx:8080/....); RESTful API 호출을 위해 Apache HttpClient 라이브러리를 사용하여 URL(192.168.0.xxx:8080/....)로 HTTP GET 요청을 준비하는 객체를 생성하는데 java.net.URISyntaxException 에러가 발생했다.  ◆ 에러 내용 java.lang.IllegalArgumentException: Illegal character in scheme name at index 0: 192.168.0.xxx:.. 공감수 0 댓글수 0 2025. 1. 13.
  • HttpServletRequest에서 클라이언트의 IP 주소 추출하기 HttpServletRequest에서 클라이언트의 IP주소 추출하는 로직이다.  서버가 프록시나 로드 밸런서를 통해 클라이언트 요청을 받을 경우, 클라이언트의 실제 IP 주소는 여러 HTTP 헤더에 설정될 수 있다.아래 소스코드는 HttpServletRequest의 헤더("X-Forwarded-For", "Proxy-Client-IP", "WL-Proxy-Client-IP", "HTTP_CLIENT_IP", "HTTP_X_FORWARDED_FOR", "X-Real-IP", "X-RealIP")를 순서대로 검사하여 가장 먼저 발견되는 유효한 IP 주소를 반환하고, 만약 모든 헤더에서 유효한 IP를 찾지 못하면 getRemoteAddr()로부터 IP를 가져오는 처리를 한다. 헤더 이름 설명getHeader(.. 공감수 0 댓글수 0 2024. 11. 1.
  • 명령 프롬프트(CMD) 에서 자바(.java)파일 컴파일 후 실행 명령 프롬프트에서 자바파일을 컴파일 한 뒤 실행하는 방법이다. 1. 자바 파일을 생성한다.테스트를 위해 실행 시 "HelloWorld"라는 문자를 출력하는 소스코드를 작성하고 파일명을 Test.java로 지정하여 저장하다.  public class Test { public static void main(String[]args) { System.out.println("HelloWorld"); }} 만약 클래스 명과 파일명이 일치하지 않는 경우, 예를 들어 클래스명은 Test1이고 파일명이 Test.java라면 컴파일 시에 다음과 같은 컴파일 에러가 발생하니 파일 생성 시 클래스명과 파일명이 일치하도록 주의한다.Test.java:1: error: class Test1 is pu.. 공감수 0 댓글수 1 2024. 8. 28.
  • Object를 String으로 변환 (valueOf, Casting, toString) Object를 String타입으로 변환할때, 사용하는 String.valueOf(), 형변환(Casting), Object.toString() 의 결과비교 /** 테스트를 위해 Object의 값을 아래와 같이 설정 */ Object a = null; //null Object b = 1234; //int Object c = "abcd"; //String Object d = 'A'; //char String.valueOf() String.valueOf(a) "null " (null이라는 문자열로 출력) String.valueOf(b) "1234" String.valueOf(c) "abcd" String.valueOf(d) "A" Casting (String) a null (String) b (에러) Clas.. 공감수 2 댓글수 0 2024. 3. 1.
  • 숫자를 언더바_(Underscore)와 같이 표시하기 자바 SE7부터는 숫자 리터럴에 언더바「_」를 넣어서 가독성을 높일 수 있게 되었다. 말 그대로 사용자의 가독성을 위해 추가된 것 일뿐, 자바에서는 컴파일 시에 언더바를 제외하고 보통의 숫자로 인식한다. ◆ 언더바 사용위치 기본적으로 언더바는 숫자 사이에 넣을 수 있으나 , 아래와 같은 부분에는 넣는데 제한이 있다. ・ 숫자의 처음과 끝 ・ 소수점 「.」을 나타내는 기호 전후 ・ long타입을 나타내는 접미사 「L」또는「l」의 바로 앞 ・ float타입을 나타내는 접미사 「F」또는「f」의 바로 앞 ・ 2진수를 나타내는 접두사 「0b」의 사이나 뒤 ・ 16진수를 나타내는 접두사 「0x」의 사이나 뒤 ◆ 예시 숫자 결과 비고 123_456 OK 12_3_4_56 OK 1_____23456 OK 언더바 「_」.. 공감수 1 댓글수 2 2024. 3. 1.
  • [JAVA] 상수와 변수의 문자 비교시, 둘 중 어느값이 먼저 명시되어야 하나? 자바에서 문자 비교 시에 사용하는 equals함수로 변수와 상수를 비교한다면 변수, 상수값 중 어느 값이 먼저 비교대상이 되어야 하는가?  이 부분은 개발자 사이에서도 의견이 갈리는데, 주요 논점이 되는 부분은 변수값이 null인 상태에서 상수와 변수를 비교하는 로직이 if문 같은 조건문의 조건으로 사용될 때 일 것이다. 개인적으로는 상황과 목적에 맞게 의식적으로 쓰는 것이 중요하지, 정답은 없다고 생각한다.아래 각각의 비교 순서에 따른 특징을 인지하여 적절히 사용하자. ◆ "상수".equals(변수)  순의 비교인 경우장점null을 숨겨 실무적으로 오류를 발생시키지 않는 방어적인 로직을 짤수 있다.  if문안에서 문자비교 시 상수가 먼저 비교대상이 되면 변숫값이 null이더라도 NullPointerEx.. 공감수 0 댓글수 0 2024. 2. 29.
  • Java 식별자(identifier) 정의 규칙 ◆ 식별자란 식별자는 하나 이상의 문자로 구성된 시퀀스로, 클래스명, 메서드명, 변수명 등에 사용된다. ◆ 식별자 정의 규칙 식별자는 대소문자를 구분한다. 식별자는 숫자로 시작할수 없다. 식별자에 사용할수 있는 기호는 언더스코어(_)와 달러기호($)만 사용가능하다. 유니코드에서 지정한 문자는 식별자로 쓸수있다. 식별자 길이에는 제한이 없으나 4 ~ 15자 정도만 사용하는 것이 좋다. 예약어(51개)는 식별자로 사용할 수 없다. ◆ 예약어 abstract continue for protected transient Assert Default public Try Catch Do If Static throws break double implements strictfp Package byte else import.. 공감수 0 댓글수 0 2024. 2. 15.
  • JAVA Map의 키(key)값을  모를 때 값(value) 확인하려면? 신입시절 SI업체에서 일할 때 프로젝트 리더와의 면접 때 나왔던 질문 중 하나이다. 질문: Map의 키를 모르는데 값을 어떻게 확인할수 있는가? 답변: Iterator나 for-each문을 이용하면 키 없이도 값을 확인할 수 있다. ( 나중에 프로젝트에 참가해서 소스코드를 보니 Map에 감싸져있는 데이터를 추출해야 하는데 중계 쪽이다 보니 키를 알 수 없는 경우가 있었고 이 때문에 면접 시에 이 질문을 하지 않았었나 생각한다. ) ◆ Iterator를 이용해 key 값을 구한 뒤 get 으로 추출 HashMap map = new HashMap(); map.put("key1", "값1"); map.put("key2", "값2"); map.put("key3", "값3"); Iterator keys = map.. 공감수 0 댓글수 0 2023. 7. 2.
  • 【연산자】4. 이항 연산자 (Binary Operator)_산술(쉬프트) 연산자 이항 연산자의 산술 연산자(쉬프트 연산자)에 대해 알아본다. ● 연산자는 크게 보면 단항 연산자, 이항 연산자, 삼항 연산자로 나뉘는데, 나뉘는 기준은 연산을 할 때 연산 대상이 되는 피 연산자의 개수가 몇 개냐가 기준이 된다.따라서 피 연산자가 1개인 경우 단항 연산자, 2개인 경우 이항 연산자, 3개인 경우 삼항 연산자라고 생각하면 된다. ● 연산자는 연산을 하는 방향과, 여러 연산자가 같이 있을 때 어느 연산을 먼저 하는가 에 대한 연산 우선순위가 있으므로 아래 표를 참조하도록 하자.예를 들어 「-2 + 3」이란 수식이 있다면 단항 연산자가 이항 연산자보다 우선순위가 높기 때문에 단항 연산자 중 하나인 부호 연산자가 2에 -1을 곱해 부호를 바꿔 -2를 만들고 그다음 -2와 3을 더하는 연산이 이항.. 공감수 1 댓글수 0 2022. 11. 25.
  • 【연산자】3. 이항 연산자 (Binary Operator)_산술(사칙) 연산자 이항 연산자의 산술 연산자(사칙 연산자)에 대해 알아본다. ● 연산자는 크게 보면 단항 연산자, 이항 연산자, 삼항 연산자로 나뉘는데, 나뉘는 기준은 연산을 할 때 연산 대상이 되는 피 연산자의 개수가 몇 개냐가 기준이 된다.따라서 피 연산자가 1개인 경우 단항 연산자, 2개인 경우 이항 연산자, 3개인 경우 삼항 연산자라고 생각하면 된다. ● 연산자는 연산을 하는 방향과, 여러 연산자가 같이 있을 때 어느 연산을 먼저 하는가 에 대한 연산 우선순위가 있으므로 아래 표를 참조하도록 하자.예를 들어 「-2 + 3」이란 수식이 있다면 단항 연산자가 이항 연산자보다 우선순위가 높기 때문에 단항 연산자 중 하나인 부호 연산자가 2에 -1을 곱해 부호를 바꿔 -2를 만들고 그다음 -2와 3을 더하는 연산이 이항 .. 공감수 0 댓글수 1 2022. 11. 20.
  • 【연산자】2. 이항 연산자 (Binary Operator)_산술(나머지) 연산자 이항 연산자의 산술 연산자(나머지 연산자)에 대해 알아본다. ● 연산자는 크게 보면 단항 연산자, 이항 연산자, 삼항 연산자로 나뉘는데, 나뉘는 기준은 연산을 할 때 연산 대상이 되는 피 연산자의 개수가 몇 개냐가 기준이 된다.따라서 피 연산자가 1개인 경우 단항 연산자, 2개인 경우 이항 연산자, 3개인 경우 삼항 연산자라고 생각하면 된다. ● 연산자는 연산을 하는 방향과, 여러 연산자가 같이 있을 때 어느 연산을 먼저 하는가 에 대한 연산 우선순위가 있으므로 아래 표를 참조하도록 하자.예를 들어 「-2 + 3」이란 수식이 있다면 단항 연산자가 이항 연산자보다 우선순위가 높기 때문에 단항 연산자 중 하나인 부호 연산자가 2에 -1을 곱해 부호를 바꿔 -2를 만들고 그다음 -2와 3을 더하는 연산이 이항.. 공감수 0 댓글수 2 2022. 11. 1.
  • 【연산자】1. 단항 연산자 (Unary Operator) 단항 연산자 (증감 연산자, 부호 연산자, 비트전환 연산자, 논리부정 연산자) 에 대해 알아본다.1. 증감 연산자 ( ++, -- )2. 부호 연산자 ( +, - )3. 비트전환 연산자 ( ~ )4. 논리부정 연산자 ( ! ) ● 연산자는 크게 보면 단항 연산자, 이항 연산자, 삼항 연산자로 나뉘는데, 나뉘는 기준은 연산을 할 때 연산 대상이 되는 피 연산자의 개수가 몇 개냐가 기준이 된다.따라서 피 연산자가 1개인 경우 단항 연산자, 2개인 경우 이항 연산자, 3개인 경우 삼항 연산자라고 생각하면 된다. ● 연산자는 연산을 하는 방향과, 여러 연산자가 같이 있을 때 어느 연산을 먼저 하는가 에 대한 연산 우선순위가 있으므로 아래 표를 참조하도록 하자.예를 들어 「-2 + 3」이란 수식이 있다면 단항 연.. 공감수 0 댓글수 1 2022. 11. 1.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.