Java: LocalDate, LocalTime, ChronoUnit을 이용해 시간 나타내고 구하기 (Java 8) + 예제(바이오리듬)

JDK 8에서 등장한 새로운 LocalDate, LocalTime, ChronoUnit을 이용해 시간을 나타내고 계산을 해보겠습니다. 이전에는 Date, Calendar 이런 애들이 쓰였는데요, 자바 초기에 등장한 것이라 문제가 많았다고 합니다. 여러 문제를 다 열거할 수 없지만 가장 큰 문제는 Calendar는 특이하게 월을 0 ~ 11로 기록해야 한다는 점이었습니다. 혹시 이런 점을 모르고 일반적인 상식으로 코드를 작성했다가 더보기…

JSP: 페이지 포함 방법 중 include 액션 태그와 디렉티브의 차이점

JSP: 페이지 포함 방법 중 include 액션 태그와 디렉티브의 차이점 비교 1. 액션 태그 사용법: <jsp:include page=”페이지 주소” flush=”false> <jsp:param name=”변수 이름” value=”변수 값”></jsp:param> </jsp:include> 액션 태그는 독립된 모듈을 구성할 때 사용합니다. 컴파일 시 클래스 파일이 별도로 생성되며 포함되는 페이지와 포함하는 페이지와는 별개로 취급됩니다.. 리퀘스트 값들은 전달되지 않으며 파라미터도 별도로 더보기…

Spring Boot: mariadb 연결하기 (JDBC-Maven 기준)

Spring Boot에 JDBC를 통해 mariadb(mysql) 연결하는 방법입니다. 1. pom.xml의 <dependencies>에 다음을 추가합니다. <!– mariaDb –> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> </dependency> 혹시 디펜던시 목록에 다른  mysql, Jdbc 과 관련된 게 있다면 충돌이 발생하므로 삭제하는 것이 좋습니다.   2. applications.properties (또는 기타 프로퍼티 파일)에 다음을 추가합니다. spring.datasource.driverClassName=org.mariadb.jdbc.Driver spring.datasource.url=jdbc:mariadb://127.0.0.1:3306/test (본인 더보기…

Java 예제: 마방진(Magic Square)

마방진의 정의는 다음과 같습니다. 마방진(魔方陣)은 n2개의 수를 가로, 세로, 대각선 방향의 수를 더하면 모두 같은 값이 나오도록 n × n 행렬에 배열한 것이다. (…) n이 홀수일 때에는 마방진을 간단한 방법으로 만들 수 있다. 첫 번째 행의 가운데 칸에 1을 넣는다. 이어서 다음과 같은 규칙으로 숫자를 채운다. 다음 숫자를 대각선 방향으로 오른쪽 더보기…

자바스크립트: for문 안에 setTimeout 함수 사용하는 방법 (IIFE, 재귀함수)

만약에 var ducks = ["첫째 오리", "둘째 오리", "셋째 오리", "넷째 오리", "다섯째 오리"] 이런 배열이 있고 이걸 1초 간격으로 하나씩 화면에 뿌리는 페이지를 만드는 상황이라고 가정합니다. 시간을 지연시키는 함수로 setTimeout(function(){…}, delayMillisecond)가 있습니다. 콜백 함수와 지연할 시간을 밀리세컨드 단위로 입력해서 사용합니다. 1초 간격으로 반복하고 싶다면 이 기능을 for문으로 돌리면 될까요? var ducks 더보기…

PHP: cURL 기초 (정적 웹 페이지에서 정보 가져오기)

웹사이트에서 POST를 통한 로그인을 한 뒤 정보를 가져오는 예제입니다. 만약 로그인이 필요한 웹 페이지라면, 로그인 정보를 POST로 보내고 쿠키로 저장하는 과정이 추가로 필요합니다. <?php $html_brand = “[리퀘스트를 보낼 주소]”; $ch = curl_init(); // cURL 생성 $options = array( CURLOPT_URL => $html_brand, CURLOPT_POSTFIELDS => “param1=value1&param2=value2&…”, // Post로 보낼 값들을 Get 방식처럼 더보기…

PHP: 배열 생성 / 배열을 JSON으로 만들기

배열을 JSON으로 변환하려면 다음 함수를 사용합니다. json_encode($배열)   빈 배열을 생성하려면 array()를 사용합니다. $arr = array();   원소가 있는 배열을 생성하는 방법입니다. $arr2 = array(“A”, “B”, “C”);   연관 배열(associative array)을 만드는 방법입니다. 연관 배열은 다른 언어의 Map, 자바스크립트의 객체(Object) 등과 유사한 자료형입니다. $arr3 = array(1 => “http//google.com”, 2 = > “http://yahoo.com”); 더보기…

Java 예제: 로또 (중복없이 배열에서 값 추출, 배열 원소 스왑) + HashSet 이용

HashSet 이용 (2020년 4월 24일 추가) Set 자료형은 중복을 허용하지 않는다는 특성을 이용한 코드입니다. import java.util.HashSet; import java.util.Set; public class SetTest { public static void main(String[] args) { Set<Integer> lotto = new HashSet<>(); while(lotto.size() < 6) { lotto.add((int)(Math.random() * 45 + 1)); } System.out.println(lotto); // Optional: Set to array Integer[] 더보기…

Java 예제: ATM

scanner, if, while, switch ~ case 문 등의 기초 문법을 활용한 간단한 ATM 프로그램입니다. 어린이들이 은행 놀이 할 때 사용하면 좋겠네요. import java.util.Scanner; public class ATM { public static void main(String[] args) { long deposit = 0; while(true) { System.out.println(“<< ATM >>”); System.out.println(“1. 입금”); System.out.println(“2. 출금”); System.out.println(“3. 조회”); System.out.println(“4. 종료”); 더보기…

PHP: 데이터베이스 접근 기초(SELECT, INSERT, UPDATE, DELETE)

1. SELECT php의 코드는 일반 텍스트와 구분하여 <?php […코드…] ?>를 사용합니다. 또는 <?[…코드…] ?>도 가능합니다. HTML 코드 내에서 변수 등을 단순히 출력하고자 할 때는 <?=[변수 이름 등]?> 의 형태로 사용합니다. 브라우저에 출력하는 코드는 echo [내용] 입니다. 내용을 그대로 소스로 내보냅니다. 변수명은 $로 시작합니다. 스트링을 덧붙이고자 할 때는 + 대신 . 를 사용합니다. 데이터베이스를 접속하는 더보기…