본문 바로가기
728x90
반응형

전체 글198

[java] 자바 컴파일 : 향상된for이 while로 변경? java 파일을 build 후 class 파일을 디컴파일러 해본적이 없어서 몰랐는데 향상된 for문이 빌드 후 while문으로 변경된다고 해서 컴파일에 대해 끄적여보겠습니다. ​ ​ 일단 자바의 컴파일 절차는 이렇습니다. 자바 소스 코드 파일(.java) -> javac 컴파일러 -> JVM 바이트코드(.class) ​ 컴파일의 세부 단계는 어휘 분석, 구문 분석, 의미 분석, 중간 코드 생성, 중간 코드 최적화로 구성됩니다. ​ 향상된 for문이 빌드 후 while문으로 변경되는 것은 중간 코드 최적화 때문입니다. 중간 코드 최적화(Code Optimization)는 중간 코드가 더 효율적인 기계어로 변환되도록 최적화하는 과정이 수행됩니다. ​ 1.핍홀(Peephole) 최적화 중복 명령어 제거 도달 .. 2020. 10. 11.
[java] 자바에서 split("|") 사용하기 - 이스케이프 처리 Splitting string with pipe character ("|") ​ 아무생각없이 자바 내장함수 split로 "|" 문자를 기준으로 자르다가 이 글을 쓰게됐습니다. 우선 아래 코드를 보시면, String str = "abc|def|ghk"; String[] s = str.split("|"); for (int i=0; i 2020. 10. 11.
Linux에 Redis CLI 설치 및 사용법 간단하게 접속할때는 telnet을 사용하면됩니다. telnet {redis주소} {port} Redis CLI 설치 https://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/red-ug/GettingStarted.ConnectToCacheNode.html make 하기 위해 gcc를 다운합니다. # sudo yum install -y gcc rdis-cli 설치 및 make # wget http://download.redis.io/redis-stable.tar.gz # tar xvzf redis-stable.tar.gz # cd redis-stable # make redis-cli를 bin에 추가해 어느 위치에서든 사용 가능하게 등록합니다. # sudo c.. 2020. 10. 9.
Flutter 개발 환경 세팅 (flutter doctor) 윈도우 환경에서 Flutter 개발 환경을 세팅하겠습니다. Windows 10 IntelliJ IDEA 2019.2 Flutter SDK 1.20.3 Dart SDK 2.9.2 1. Flutter SDK 다운로드 https://flutter.dev/docs/get-started/install에 접속하여 맞는 sdk 파일을 다운로드합니다. 환경 변수 Path에 /flutter sdk 경로/flutter/bin을 추가합니다. 2. flutter doctor command 창에 flutter doctor 명령어를 입력하여 실행에 필요한 dependency 파일을 확인합니다. > flutter doctor Android SDK 설치를 위해 안내해 준 링크로 이동합니다. 안드로이드 SDK만 별도로 다운로드해 설정.. 2020. 10. 9.
[Spring] @ResponseBody, return null, MessageConverter Controller에서 String이 반환되면 view 이름을 찾아서 JSP를 렌더링 하고, view가 없으면 404를 반환합니다. @RequestMapping("main") public String main() { return "main"; } 만약 method에 @ResponseBody 어노테이션이 적용되어 있다면 view를 찾지 않고, String 값을 그대로 반환합니다. @ResponseBody @RequestMapping("readUserNm") public String readUserNm(UserVO param) throws Exception { return userService.readUserNm(param); } ​ Dispatcher Servlet이 ModelAndView를 반환하면 Vi.. 2020. 10. 9.
[html] meta tag og (open graph) og 적용해달라는 요청이 왔었는데, og에 대해 몰라서 알아보기로 했습니다. og. 즉, open graph는 html meta 태그 종류 중 하나입니다. SNS 등에 url을 공유 할 때 미리 보여주는 이미지나 그 링크에 대한 설명, 제목을 표시하기 위한 태그입니다. 자세한 설명 : https://ogp.me/ Open Graph의 기본 태그 og:title - 사이트의 제목 og:type - 사이트객체의 유형. 예) website, video.movie 지정한 유형에 따라 다른 속성도 필요할 수 있다. og:image - 사이트를 나타내는 대표 이미지의 URL og:url - 영구 ID로 사용될 사이트의 정규 URL Open Graph의 옵션 태그 og:audio - 사이트와 함께 사용할 오디오 파일.. 2020. 10. 9.
[javascript] JSON 합치기 Object.assign(a, b) Object.assign 함수를 이용하여 두 개의 JSON을 병합할 수 있습니다. ​ var d = {a:1, b:2}; var c = {c:3}; Object.assign(d, c); // {a:1, b:2, c:3} 단, 같은 key 값을 가지고 있으면 뒤에 오는 JSON의 value값이 적용됩니다. var d = {a:1, b:2}; var c = {a:3, c:3}; Object.assign(d, c); // {a:3, b:2, c:3} 하지만 IE에서만 해당 기능이 작동하지 않습니다. IE.... 이런 점을 고려해서 상황에 맞게 사용하면 좋겠습니다. https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Obje.. 2020. 10. 9.
[css] 효율적인 CSS 작성하기 효율적인 CSS 작성하는 방법입니다. Universal 규칙은 사용하지 않습니다. /** Universal 규칙 예제 */ [hidden="true"] { ... } * { ... } div > [type="number"] { ... } ​ ​ ID 규칙에 쓸모없는 태그나 클래스를 사용하지 않습니다. ID는 고유하므로 태그나 클래스를 붙이는 것은 매칭 작업을 더디게 만듭니다. (예외: 만약 여러가지 다른 스타일을 위해 ID가 지정된 엘리먼트의 class가 동적으로 바뀌고 이 class가 ID가 지정되지 않은 다른 엘리먼트와 공유될 경우에는 클래스 선택자가 필요합니다. ) button#btn { ... } button#btn.on { ... } table#tbl { ... } input#num[type=".. 2020. 10. 9.
[javascript] 뒤로가기 이벤트 onpopstate onpopstate (뒤로 가기) 이벤트를 적용하면 window.history.back(); 시에도 작동됩니다. 게시물 목록에서 게시물 상세 페이지로 이동 한 뒤, 뒤로 가기 버튼으로 페이징 값과 조회 조건을 가져가고 싶을 때 onpopstate 이벤트를 사용하면 값을 넘길 수 있습니다. /* detail.jsp */ window.onpopstate = function(event) { history.pushState({pageNum:3, searchDt:'2019-05-07'}, null, '/board/list'); location.reload(); } history.pushState(null, null, null); /* list.jsp */ console.log(history.state); // {.. 2020. 10. 9.
[css] 가변 값을 위한 함수 calc() calc는 반응형 웹 구축 시 유용한 css 함수입니다. 만약 전체 width에서 230px를 제외한 길이만큼 영역을 지정하고 싶다. 고정된 영역에서 230px를 더하고 빼는 것은 어렵지 않지만, 반응형 웹에서는 상대적인 영역을 사용하기 때문에 calc 함수를 사용합니다. .width-m230 { width: calc(100% - 230px); } 매우 간단한 방법으로 원하는 width를 사용할 수 있게 되었습니다. width 값 말고도 padding, margin, font-size 등에도 유용하게 쓸 수 있습니다. 유의할 점은 값과 연산자 사이에 띄어쓰기를 꼭 해야 한다는 점입니다. calc(값1 연산자 값2) 2020. 10. 9.
728x90
반응형