본문 바로가기

프로그래밍/Web.22

[JAVA] static과 final의 컴파일 자바에서 자주 쓰이는 정적(static) 변수와 상수(final) 변수가 컴파일 시에 어떻게 변하는지 기록합니다. 크게 신경 쓰지 않아도 괜찮지만 간혹 문제를 발생하는 경우가 있으니 알고 있으면 좋겠습니다. static 컴파일 전(Var.java) public class Var { public static String str = "정적"; } 컴파일 전(Use.java) public class Use { private String str = Var.str; } 컴파일 후(Var.class) public class Var { public static String str = "정적"; } 컴파일 후(Use.class) public class Use { private String str = Var.str; }.. 2020. 8. 11.
[JAVA] IP 를 long 형으로 변환하기 접근 제어 시 특정 IP를 허용, 금지는 간단하게 이 꼴(=) 연산으로 구분할 수 있습니다. 그러나 특정 IP의 범위를 허용해 주기 위해선 어떻게 해야 할까요? IP를 long 형식으로 비교! private long convertIP2Long (String ip) { /* IP = IP1.IP2.IP3.IP4 * 공식 > IP1 * (256)^3 + IP2 * (256)^2 + IP3 * (256)^1 + IP4 * (256)^0 */ String[] ipArray = ip.split("\\."); long result = 0; for (int index = 0; index < ipArray.length; index++) { result += Integer.parseInt(ipArray[index]) *.. 2020. 8. 6.
[JavaScript] Google 사이트번역 API 사용법 Google의 사이트 번역 기능을 페이지에 삽입하는 방법을 알아보겠습니다. 기존 사용법 기존에 사용하던 API 키를 발급하여 사이트 번역을 하던 방식(여기)은 더 이상 지원되지 않습니다. 그렇다고 이런 편리한 기능을 안 쓰기는 아쉬우니 다른 방법으로 접근하여 보겠습니다. 다른 사용법 위의 방법과 동일한 결과물을 볼 수 있는 다른 방법입니다. 위의 소스를 통해 아래와 같은 결과물을 볼 수 있습니다. 옵션 조절을 통해 디자인 변경 및 표시할 언어, 페이지 기본 언어 등을 선택해 줄 수 있습니다. 언어(ISO 639) 위의 API에서 언어 코드를 많이 사용하게 되는데, 이때 참고할 만한 위키백과 링크입니다. ISO 639 코드 목록과 해당 국가의 언어 부호를 정보로 사용하였습니다. 2020. 8. 5.
[JAVA] 내부 클래스가 컴파일되면? 지난 포스트에서 작성했던 소스에 내부 클래스로 구현하였던 인증 세션 부분이 컴파일했을 때 어떤 식으로 변경되는지에 대하여 기록하려 합니다. 자동 배포 환경이 구축되어있지 않은 상황에서 바이트 코드가 누락되어 동작오류가 발생하였습니다. JAVA Compile 우선 JAVA의 컴파일에 관하여 간략히 기록하겠습니다. JAVA의 모토인 Write once, run everywhere(한번 작성, 어디서나 실행)에 따라 자바 소스는 JVM위에서 동작 가능한 상태인 Byte Code로 컴파일됩니다. 이때 Class 내부에 작성한 내부 클래스는 어떤 식으로 컴파일될까요? Inner Class의 Byte Code 결과는 따로 컴파일된다 였습니다. 예제와 디컴파일한 Byte Code를 살펴보겠습니다. // OuterCl.. 2020. 7. 8.
[JAVA] SMTP 발송(feat.Naver) Java언어와 SMTP를 이용하여 메일을 발송하는 예제입니다. 네이버 메일 설정 1. 내 메일함 설정으로 들어갑니다. 2. POP3/IMAP 설정으로 들어갑니다. 3. IMAP/SMTP 설정으로 들어갑니다. 4. IMAP/SMTP 사용을 사용함으로 변경합니다. 5. 변경한 설정을 적용합니다. 6. SMTP 요청을 전송할 정보임으로 확인해주세요 pom.xml org.simplejavamail simple-java-mail 6.0.4 저장소에서 원하시는 버전의 의존성 패키지를 선택해서 프로젝트에 불러와주세요. 소스 public class MailUtil { /** 메일 HOST **/ private static final String HOST = "smtp.naver.com"; /** 메일 PORT **/ .. 2020. 6. 30.
[JSTL] <c:set /> 사용법 JSTL 태그 중 c:set 태그의 간략한 사용법을 기록합니다. 단순 변수 ${data} 단순 변수의 값을 수정하기 위해 위와 같이 사용합니다. 자료구조 속의 변수 ${suit.data} forEach문을 사용하거나 session의 값을 사용할 경우 자료구조에 값이 담겨있는 경우가 있는데, 그런 경우엔 target과 property옵션을 사용하여 값을 수정합니다. 2020. 4. 21.