1. Bootstrap

 - 웹사이트 제작시에 많이 사용 되는 요소들을 모아놓은 오픈소스

 - 반응형 웹페이지를 손쉽게 만들 수 있다.

 - 수많은 유, 무료 테마


2. 사용해보기

 1) js, css

  - cdn 링크 : http://getbootstrap.com/docs/4.1/getting-started/introduction/ 참고

  - 다운로드 : http://getbootstrap.com 참고


3. 샘플

 1) BUTTON

  - http://getbootstrap.com/docs/4.1/components/buttons/

  - 샘플코드

<button type="button">기본버튼</button>

<button type="button" class="btn">BS 버튼</button>

<button type="button" class="btn btn-primary">Primary</button>
<button type="button" class="btn btn-secondary">Secondary</button>
<button type="button" class="btn btn-success">Success</button>
<button type="button" class="btn btn-danger">Danger</button>
<button type="button" class="btn btn-warning">Warning</button>
<button type="button" class="btn btn-info">Info</button>
<button type="button" class="btn btn-light">Light</button>
<button type="button" class="btn btn-dark">Dark</button>

<button type="button" class="btn btn-link">Link</button>

<button type="button" class="btn btn-primary btn-lg">Primary</button>
<button type="button" class="btn btn-success btn-md">Success</button>
<button type="button" class="btn btn-secondary btn-sm">Secondary</button>

<button type="button" class="btn btn-outline-primary">Primary</button>
<button type="button" class="btn btn-outline-secondary">Secondary</button>
<button type="button" class="btn btn-outline-success">Success</button>
<button type="button" class="btn btn-outline-danger">Danger</button>
<button type="button" class="btn btn-outline-warning">Warning</button>
<button type="button" class="btn btn-outline-info">Info</button>
<button type="button" class="btn btn-outline-light">Light</button>
<button type="button" class="btn btn-outline-dark">Dark</button>

<button type="button" class="btn btn-primary btn-lg btn-block">Block level button</button>
<button type="button" class="btn btn-secondary btn-lg btn-block">Block level button</button>


  - 결과



 2) input

  - http://getbootstrap.com/docs/4.1/components/input-group/

  - 샘플소스

기본 <input type="text">

<input type="text" class="form-control" placeholder="GEUN.kr">


<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="addon1">@</span>
</div>
<input type="text" class="form-control" placeholder="Username" aria-describedby="addon1">
</div>

<div class="input-group mb-3">
<input type="text" class="form-control" placeholder="Username" aria-describedby="addon2">
<div class="input-group-append">
<span class="input-group-text" id="addon2">@geun.kr</span>
</div>
</div>


  - 결과



3) NavBar

  - https://getbootstrap.com/docs/4.1/components/navbar/

  - 샘플코드

<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">GEUN.kr</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>

<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">BLOG</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">
Language
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="#">JAVA</a>
<a class="dropdown-item" href="#">PHP</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">JAVASCRIPT</a>
</div>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>

  - 결과


 4) Table

  - https://getbootstrap.com/docs/4.1/content/tables/

  - 샘플소스

<table>
<thead>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</thead>
<tbody>
<tr>
<td>Mary</td>
<td>Moe</td>
<td>mary@example.com</td>
</tr>
<tr>
<td>July</td>
<td>Dooley</td>
<td>july@example.com</td>
</tr>
</tbody>
</table>

<table class="table table-striped table-bordered">
<thead>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</thead>
<tbody>
<tr>
<td>Mary</td>
<td>Moe</td>
<td>mary@example.com</td>
</tr>
<tr>
<td>July</td>
<td>Dooley</td>
<td>july@example.com</td>
</tr>
<tr>
<td>Mary</td>
<td>Moe</td>
<td>mary@example.com</td>
</tr>
<tr>
<td>July</td>
<td>Dooley</td>
<td>july@example.com</td>
</tr>
</tbody>
</table>


  - 결과



 5) Pagination

  - https://getbootstrap.com/docs/4.1/components/pagination/

  - 샘플소스

<ul class="pagination">
<li class="page-item"><a class="page-link" href="#">Previous</a></li>
<li class="page-item"><a class="page-link" href="#">1</a></li>
<li class="page-item"><a class="page-link" href="#">2</a></li>
<li class="page-item"><a class="page-link" href="#">3</a></li>
<li class="page-item"><a class="page-link" href="#">4</a></li>
<li class="page-item"><a class="page-link" href="#">5</a></li>
<li class="page-item"><a class="page-link" href="#">Next</a></li>
</ul>


  - 결과



 6) Modal

  - https://getbootstrap.com/docs/4.1/components/modal/

  - 샘플소스

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>


  - 결과


 7) containers

  - https://getbootstrap.com/docs/4.0/layout/overview/#containers

  - 샘플소스

<div class="container">

</div>

  - 결과



  - 샘플소스

<div class="container-fluid">

</div>
  - 결과


 8) Grid 시스템 

  - https://getbootstrap.com/docs/4.1/layout/grid/

  - 참고 : http://shoelace.io/ 

  - 브라우저 크기에 따라 최대 12개의 컬럼을 어떻게 배치할 건지에 대한 정의

  - 샘플코드


<!-- Control the column width, and how they should appear on different devices -->
<div class="row">
<div class="col-sm-6" style="background-color:yellow;">50%</div>
<div class="col-sm-6" style="background-color:orange;">50%</div>
</div>
<br>

<div class="row">
<div class="col-sm-4" style="background-color:yellow;">33.33%</div>
<div class="col-sm-4" style="background-color:orange;">33.33%</div>
<div class="col-sm-4" style="background-color:yellow;">33.33%</div>
</div>
<br>

<!-- Or let Bootstrap automatically handle the layout -->
<div class="row">
<div class="col-sm" style="background-color:yellow;">25%</div>
<div class="col-sm" style="background-color:orange;">25%</div>
<div class="col-sm" style="background-color:yellow;">25%</div>
<div class="col-sm" style="background-color:orange;">25%</div>
</div>
<br>

<div class="row">
<div class="col" style="background-color:yellow;">25%</div>
<div class="col" style="background-color:orange;">25%</div>
<div class="col" style="background-color:yellow;">25%</div>
<div class="col" style="background-color:orange;">25%</div>
</div>


  - PC


  - 태블릿

  - 폰



추가적으로 아래 사이트를 가시면 커스텀한 Bootstrap compenent를 사용할 수 있습니다.

 - https://bootsnipp.com/

'프로그래밍 > html & css' 카테고리의 다른 글

Bootstrap 사용하기  (0) 2018.08.08
textarea 리사이즈 관련  (0) 2018.07.16
radio, checkbox clear 버튼 만들기.  (0) 2018.04.25
<html lang="ko">  (0) 2018.04.09
html tag(select box, checkbox) Readonly(?)처럼 사용하기  (0) 2018.03.08

1. 하고싶은 것?

 - curl을 사용하여 URL의 호출  시간 및 기타 상세 정보를 보고싶음.


2. 명령어 샘플 보기

 - 명령어

curl -w '\nTime_namelookup:\t%{time_namelookup}\nTime_Connect:\t\t%{time_connect}\nTime_Appconnect:\t%{time_appconnect}\nTime_Redirect:\t\t%{time_redirect}\nTime_Pretransfer:\t%{time_pretransfer}\nTime_Starttransfer:\t%{time_starttransfer}\n\nTime_Total:\t\t%{time_total}\n' -o /dev/null -s  http://blog.geun.kr


 - 결과


3. 상세값 설명

 

 


 time_appconnect

 SSL/SSH/기타 연결/핸드 셰이크가 원격 호스트에 완료 될 때까지 걸린 시간 (초)

 

 time_connect

 원격 호스트에 대한 TCP 연결이 완료 될 때까지 소요된 시간(초)

 

 time_namelookup

 namelookup이 완료될때 까지 소요된 시간(초)

 

 time_pretransfer

 

 

 time_redirect 여러 리디렉션의 전체 실행 시간을 보여줍니다. 
 time_starttransfer  
 time_total

 전체 소요 시간

 


4. 더 많은 정보 보기

 - format.json을 만든다.

{
"host": {
"local_ip": "%{local_ip}",
"local_port": "%{local_port}",
"remote_ip": "%{remote_ip}",
"remote_port": "%{remote_port}"
},
"connection": {
"http_version": "%{http_version}",
"http_code": "%{http_code}",
"http_connect": "%{http_connect}",
"num_connects": "%{num_connects}",
"num_redirects": "%{num_redirects}",
"redirect_url": " %{redirect_url}"
},
"file": {
"content_type": "%{content_type}",
"filename_effective": "%{filename_effective}",
"ftp_entry_path": "%{ftp_entry_path}",
"size_download": "%{size_download}",
"size_header": "%{size_header}",
"size_request": "%{size_request}",
"size_upload": "%{size_upload}",
"speed_download": "%{speed_download}",
"speed_upload": "%{speed_upload}",
"ssl_verify_result": "%{ssl_verify_result}",
"url_effective": "%{url_effective}"
},
"time": {
"time_appconnect": "%{time_appconnect}",
"time_connect": "%{time_connect}",
"time_namelookup": "%{time_namelookup}",
"time_pretransfer": "%{time_pretransfer}",
"time_redirect": "%{time_redirect}",
"time_starttransfer": "%{time_starttransfer}",
"time_total": "%{time_total}"
}
}

 - 명령어

curl -w '@/path/format.json' -o /dev/null -s  http://blog.geun.kr


 - 결과

 
   "host": 
      "local_ip":"172.30.112.192",
      "local_port":"61895",
      "remote_ip":"27.0.236.139",
      "remote_port":"80"
   },
   "connection": 
      "http_version":"1.1",
      "http_code":"400",
      "http_connect":"000",
      "num_connects":"1",
      "num_redirects":"0",
      "redirect_url":" "
   },
   "file": 
      "content_type":"text/html; charset=iso-8859-1",
      "filename_effective":"/dev/null",
      "ftp_entry_path":"",
      "size_download":"347",
      "size_header":"166",
      "size_request":"79",
      "size_upload":"0",
      "speed_download":"2330.000",
      "speed_upload":"0.000",
      "ssl_verify_result":"0",
      "url_effective":"http://blog.geun.kr/"
   },
   "time": 
      "time_appconnect":"0.000000",
      "time_connect":"0.142898",
      "time_namelookup":"0.137409",
      "time_pretransfer":"0.142976",
      "time_redirect":"0.000000",
      "time_starttransfer":"0.148800",
      "time_total":"0.148910"
   }

}



참고자료 

 - https://www.shellhacks.com/check-website-response-time-linux-command-line/

 - https://gist.github.com/manifestinteractive/ce8dec10dcb4725b8513

 - https://blog.josephscott.org/2011/10/14/timing-details-with-curl/







1. 기본

 

 범위

 예시

 10진수

 0 - 9

0,  1, 2, 3, 4 .... 8, 9, 10 ...

 16진수(Hex)

 0 ~ 9, A ~ F 

0,  1, 2 .... 9, A, B ... F, 10, 11 .... 19, 1A, 1B

 8진수(Octal)

 0 ~ 7

 0, 1, 2 .... 6, 7, 10, 11 ....

 2진수(Binary)

 0, 1

 0, 1, 10, 11, 100, 101



2. Python 으로 구현해보기

 1) 내장함수로 구현해보기

  - 소스 코드

if __name__ == "__main__":
num_10 = 236

num_2 = bin(num_10) # 접두어 "0b"가 붙음
num_8 = oct(num_10)
num_16 = hex(num_10)

print("10 -> 2 : ", num_2)
print("10 -> 8 : ", num_8)
print("10 -> 16 : ", num_16)
print("=================")

# int(x, base=10)
print("2 -> 10 : ", int(num_2, 2))
print("8 -> 10 : ", int(num_8, 8))
print("16 -> 10 : ", int(num_16, 16))

  - 결과


 2) 함수 구현해보기.

  - 재귀함수를 사용하여 함수 구현

def convert(num, base):
T = "0123456789ABCDEF"
quotient, remainder = divmod(num, base)

if quotient == 0:
return T[remainder]
else:
return convert(quotient, base) + T[remainder]


if __name__ == "__main__":
num_10 = 236

print(convert(num_10, 2))
print(convert(num_10, 8))
print(convert(num_10, 16))

print("=================")
print(int(convert(num_10, 2), 2))
print(int(convert(num_10, 8), 8))
print(int(convert(num_10, 16), 16))

  - 실행결과



3. 전체 소스

def convert(num, base):
T = "0123456789ABCDEF"
quotient, remainder = divmod(num, base)

if quotient == 0:
return T[remainder]
else:
return convert(quotient, base) + T[remainder]


if __name__ == "__main__":
num_10 = 236

num_2 = bin(num_10) # 접두어 "0b"가 붙음
num_8 = oct(num_10)
num_16 = hex(num_10)

print("10 -> 2 : ", num_2)
print("10 -> 8 : ", num_8)
print("10 -> 16 : ", num_16)
print("=================")

# int(x, base=10)
print("2 -> 10 : ", int(num_2, 2))
print("8 -> 10 : ", int(num_8, 8))
print("16 -> 10 : ", int(num_16, 16))
print("=================")

print(convert(num_10, 2))
print(convert(num_10, 8))
print(convert(num_10, 16))

print("=================")
print(int(convert(num_10, 2), 2))
print(int(convert(num_10, 8), 8))
print(int(convert(num_10, 16), 16))


'프로그래밍 > Python' 카테고리의 다른 글

10진수 n진수로 변환하기.  (0) 2018.07.30
[Basic] 약수  (0) 2018.06.04

1. 세가지 공통점

 - 문자열을 처리하는 Class


2. String 과 (StringBuffer, StringBuilder)의 차이점

 - 메모리 상에서 처리방식에서 차이점이 있다.

 - String은 immutable(변경불가) 이고, StringBuffer는 mutable이다.


3. StringBuffer, StringBuilder 두개의 차이점

 1) StringBuffer

  - append 메소드

@Override
public synchronized StringBuffer append(Object obj) {
toStringCache = null;
super.append(String.valueOf(obj));
return this;
}


 2) StringBuilder

  - append 메소드

@Override
public StringBuilder append(Object obj) {
return append(String.valueOf(obj));
}


4. 결론

 - 단순한 처리일 경우 String 을 사용해도 크게 문제 안됨.

 - multi thread 환경에서는 StringBuffer를 사용하는게 안전하다. 그렇지 않을 경우라면 StringBuilder가 더 빠르다. 아래 소스를 참고하자.

public class StrTest {

public static void main(String[] args) {

strBufferTest();
strBuilderTest();
}

private static void strBufferTest() {
Date start = new Date();
StringBuffer stringBuffer = new StringBuffer();

new Thread(() -> {
IntStream.range(1, 10000).forEach(num -> {
stringBuffer.append(num);
});

}).start();

new Thread(() -> {
IntStream.range(1, 10000).forEach(num -> {
stringBuffer.append(num);
});

}).start();

new Thread(() -> {
Date end = new Date();
long millis = end.getTime() - start.getTime();

try {
Thread.sleep(5000);

System.out.println("StringBuffer length : " + stringBuffer.length());
System.out.println("StringBuffer time(ms) :" + millis);

} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
}

private static void strBuilderTest() {
Date start = new Date();
StringBuilder stringBuilder = new StringBuilder();
new Thread(() -> {
IntStream.range(1, 10000).forEach(num -> {
stringBuilder.append(num);
});

}).start();

new Thread(() -> {
IntStream.range(1, 10000).forEach(num -> {
stringBuilder.append(num);
});

}).start();

new Thread(() -> {
Date end = new Date();
long millis = end.getTime() - start.getTime();

try {
Thread.sleep(5000);

System.out.println("StringBuilder length : " + stringBuilder.length());
System.out.println("StringBuilder time(ms) :" + millis);

} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();

}
}

  - 위 소스 결과


 - JDK 1.5버전 부터인지 정확하지는 않지만 String 선언시 문자열을 '+'하는 형태로 작업 할 경우 컴파일시에 StringBuilder로 변경됨.



*참고 페이지

 - https://www.slipp.net/questions/271

 - https://lalwr.blogspot.com/2016/02/string-stringbuffer-stringbuilder.html

https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser?rq=1  에서 본 내용을 간단하게 정리해봄.




결과


'프로그래밍 > Javascript' 카테고리의 다른 글

How to detect browser.  (0) 2018.07.23
IOS 버전 관련 처리  (0) 2018.07.20
[Jquery] .each에서 break, continue 구현하기.  (0) 2018.07.02
How to create dynamic a form!  (0) 2018.06.07
javascript replaceAll 사용하기  (0) 2018.03.08
Timer 구현하기  (0) 2017.01.25

1. IOS Useagent


Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1


2. 하고싶은 것

 - 11.4 버전 이상일 경우를 체크하고 싶다.


 - 소스

function osVersion(){
var mt = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);

if (mt === undefined || mt === null || nt === '') {
return false;
}

var version = [
parseInt(mt[1], 10),
parseInt(mt[2], 10),
parseInt(mt[3] || 0, 10)
];

return parseFloat(version.join('.'))
}

 - 사용법

if (osVersion() > 11.4) {
alert("에러");
}


* IOS 인지 아닌지에 대한 처리는 없습니다. 관련 소스는 추가해서 사용하세요 ^_^

'프로그래밍 > Javascript' 카테고리의 다른 글

How to detect browser.  (0) 2018.07.23
IOS 버전 관련 처리  (0) 2018.07.20
[Jquery] .each에서 break, continue 구현하기.  (0) 2018.07.02
How to create dynamic a form!  (0) 2018.06.07
javascript replaceAll 사용하기  (0) 2018.03.08
Timer 구현하기  (0) 2017.01.25

(작성일 기준으로 1.2.8 버전이 최신버전)


자바(with Spring)를 개발하다보면 Class를 추가/변경 하는 작업을 많이 한다. 그럴때마다 서버를 리스타트하는 일은 엄청나게 번거로운 일이다. 그래서 자동으로 reload 시켜주는 걸 찾아봤다.


1. 설치하기

 - pom.xml

<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.8.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>


 - jar 다운로드(이 경우에는 다운로드한 경로를 따로 복사해 놓으세요.)

http://mvnrepository.com/artifact/org.springframework/springloaded/1.2.8.RELEASE


4. Spring Boot

 1) maven 명령어로 실행

spring-boot:run 을 실행시킨다.


 2) vm option 추가

-javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify


  (1) Intelli J 일 경우

 - File -> Setting -> Build, Execution, Deployment -> Compiler

Build project automatically 체크!!




  (2) Eclipse 일 경우

    - 추후 작성


5. Spring Framework + Tomcat

 - 추후 작성


6. Daemon 실행

java -javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify SomeJavaClass


7. 테스트 결과

 1) 전역변수 추가 -> 안됨.

  - 테스트 코드(변경 전)

@RequestMapping(value = "/")
public ResponseEntity<String> test() {
return new ResponseEntity<String>("INDEX", HttpStatus.OK);
}

  - 테스트코드(변경 후)

private String ma = "test222";

@RequestMapping(value = "/")
public ResponseEntity<String> test() {
LOG.info("test : {} ", ma);
return new ResponseEntity<String>("INDEX", HttpStatus.OK);
}


  - 결과


 2) @Controller 추가 -> 안됨.

@Controller
public class Test {
@RequestMapping(value = "/test")
public ResponseEntity<String> test2() {
return new ResponseEntity<String>("INDEX 2", HttpStatus.OK);
}
}

 

 3) @RequestMapping 추가 -> 안됨.

@RequestMapping(value = "/test")
public ResponseEntity<String> test2() {
return new ResponseEntity<String>("INDEX 2", HttpStatus.OK);
}

   - 404가 뜬다.


 4) Class 추가 - 됨!!

  - 테스트 코드

public enum TestCd {
BOOK, NOTE;
}

  - 잘 추가/수정 된다.


 5) 지역변수 -> 됨!

@RequestMapping(value = "/")
public ResponseEntity<String> test() {

String testValue = "test test test";
LOG.info("test : {} ", testValue);

return new ResponseEntity<String>("INDEX", HttpStatus.OK);
}

 - 잘 추가/수정 된다.



관련문서

 - https://github.com/spring-projects/spring-loaded

 - https://andromedarabbit.net/spring-loaded%EC%99%80-gradle%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%B4-%ED%95%AB%EC%8A%A4%EC%99%91-%EC%A7%80%EC%9B%90%ED%95%98%EA%B8%B0/

 - http://www.holaxprogramming.com/2015/05/29/spring-boot-and-loaded/





1. 사용기
- 구매할 때 이곳저곳 여러 쇼핑몰을 검색해봤는데, 신세계몰이 조금 저렴해서 거기서 주문함
- 거실 tv가 아닌 개인 모니터에 연결해서 넷플릭스 등을 연결해서 봄
- 화질은 좀 별로지만 편해서 종종 사용하는 중
- 금액대비 쓸만함
- 네이버에서 야구 볼때도 사용함. (Mac에서 크롬사용하여 야구를 켬!!) tving으로 사용할 때도 있음. 화질은 심각함ㅋㅋㅋ


'개인 > Review' 카테고리의 다른 글

chromecast  (0) 2018.07.17
네이버 웨일 리뷰  (0) 2016.12.09
앱코 k935p 무접점 키보드  (0) 2016.10.20

1. X Stream

 - IntStream 은 int를 지정한 범위 내에서 반복문을 동작함

 - LongStream dms Long을 지정한 범위 내에서 반복문을 동작함


2. range, rangeclosed

 - range는 endExclusive 값 전까지만 반복

 - rangeClosed는 endExclusive 를 포함하여 반복


3. IntStream

 - 소스

public class IntRangeTest {

public static void main(String[] args) {
int startNum = 1;
int endNum = 9;

intRangeTest(startNum, endNum);
System.out.println("\n");
intRangeClosedTest(startNum, endNum);

System.out.println("\n");
}

private static void intRangeTest(int startNum, int endNum) {
System.out.print("IntRange Test 1 : ");
IntStream.range(startNum, endNum).forEach(System.out::print);

System.out.println();

System.out.print("IntRange Test 2 : ");
for (int i = startNum; i < endNum; i++) {
System.out.print(i);
}
}

private static void intRangeClosedTest(int startNum, int endNum) {
System.out.print("IntRangeClosed Test 1 : ");
IntStream.rangeClosed(startNum, endNum).forEach(System.out::print);

System.out.println();

System.out.print("IntRangeClosed Test 2 : ");
for (int i = startNum; i <= endNum; i++) {
System.out.print(i);
}
}
}


 - 결과



4. LongStream

 - 소스

public class LongRangeTest {

public static void main(String[] args) {
long startNum = 1L;
long endNum = 9L;

longRangeTest(startNum, endNum);
System.out.println("\n");
longRangeClosedTest(startNum, endNum);

System.out.println("\n");
}

private static void longRangeTest(long startNum, long endNum) {
System.out.print("LongRange Test 1 : ");
LongStream.range(startNum, endNum).forEach(System.out::print);

System.out.println();

System.out.print("LongRange Test 2 : ");
for (long i = startNum; i < endNum; i++) {
System.out.print(i);
}
}

private static void longRangeClosedTest(long startNum, long endNum) {
System.out.print("LongRangeClosed Test 1 : ");
LongStream.rangeClosed(startNum, endNum).forEach(System.out::print);

System.out.println();

System.out.print("LongRangeClosed Test 2 : ");
for (long i = startNum; i <= endNum; i++) {
System.out.print(i);
}
}
}

 

 - 결과

<!-- 리사이즈 변경 불가 -->
<textarea style="resize: none;"></textarea>
<!-- vertical horizontal 둘다 가능 -->
<textarea style="resize: both;"></textarea>
<!-- vertical 둘다 가능 -->
<textarea style="resize: vertical;"></textarea>
<!-- horizontal 둘다 가능 -->
<textarea style="resize: horizontal;"></textarea>


'프로그래밍 > html & css' 카테고리의 다른 글

Bootstrap 사용하기  (0) 2018.08.08
textarea 리사이즈 관련  (0) 2018.07.16
radio, checkbox clear 버튼 만들기.  (0) 2018.04.25
<html lang="ko">  (0) 2018.04.09
html tag(select box, checkbox) Readonly(?)처럼 사용하기  (0) 2018.03.08

+ Recent posts