yjhyjh5369의 등록된 링크

키자드에 등록된 총 966개의 포스트를 확인하실 수 있습니다.

Naver Blog

jQuery를 사용하여 input 상자에 숫자만 허용하는 방법

출처 : https://stackoverflow.com/questions/995183/how-to-allow-only-numeric-0-9-in-html-inputbox-using-jquery inputFilter 플러그인을 사용한다. 1. plugin 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // Restricts input for each element in the set of matched elements to the given inputFilter. (function($) { $.fn.inputFilter = function(inputFilter) { return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function() { if (inputFilter(this.value)) { this.oldValue = this.value; this.oldSelectio

Naver Blog

[javascript jquery] element의 위치를 알고 싶은 경우

일반적으로는 jquery의 position() 또는 offset() 함수를 사용하는데, 특정 경우에서 이상한 값을 얻어올 수 있다. 이 경우 아래와 같이 offsetTop, offsetLeft를 사용한다. // document.getElementsByTagName // document.getElementById // document.getElementsByClassName // document.querySelectorAll var element = document.getElementsByClassName("find"); alert(element[0].offsetTop);

Naver Blog

[웹 보안취약성]

1. X-Frame-Options Header Not Set 1.1 X-Frame-Options 헤더란? X-Frame-Options 헤더는 FrameSet이나 iframe 등에 의한 클릭재킹에 대한 보호를 제공하며 2009년에 IE8에서 추가되었고 얼마 후 다른 브라우저들에도 채택되었습니다. 1.2 옵션 값 - DENY : 외부 사이트에 대한 프레임 금지 - SAMEORIGIN : 같은 사이트만 허용 - ALLOW-FROM : 특정 사이트만 허용 1.3 사용법 - TOMCAT의 web.xml에 아래와 같은 코드 추가 ( 프로젝트 내의 web.xml이 아님 ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <filter> <filter-name>httpHeaderSecurity</filter-name> <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-cl

Naver Blog

[tomcat 7.0] log 설정

1. Tomcat Logging 종류 - Tomcat을 설치하면 기본적으로 log 파일은 tomcat root경로/log 에 위치하게 됩니다. 구분 설명 파일명 Java Logging API Tomcat에서는 Application당 logging 설정을 제어하기 위해 java.util.logging 기반의 구현체 JULI를 사용. logging.properties 파일의 설정에 따름 ex) localhost.yyyy-MM-dd.log Servlets logging API javax.servlet.ServletContext.log를 통해 메시지를 출력할 때 사용됨. logging.properties 파일의 설정 중 org.apache.catalina.core.ContainerBase.[${engine}].[${host}].[${context}]의 설정에 따름 ex) manage.yyyy-MM-dd.log Console Tomcat 운여 시 출력되는 STDDRR/STDOUT ex) ca

Naver Blog

[java] 실행 인코딩 설정

이클립스에서는 한글이 잘 표시되지만 jar 또는 exe로 만들어 실행 할 경우 한글 깨짐 현상이 발생할 수 있습니다. 그 이유는 JAVA를 실행할 때 기본적으로 시스템의 Charset를 가지고 실행하기 때문입니다. Windows의 Charset이 MS949라면 JAVA를 실행시키면 MS949로 파일을 인코딩해서 실행하게 되는 것입니다. 만약, UTF-8의 Charset를 가진 파일을 실행하게 되면 한글은 깨지게 됩니다. 이 경우 JAVA를 UTF-8로 실행시키면 되는데 방법은 아래와 같습니다. 1) JAVA java -Dfile.encoding=UTF-8 실행할자바파일 2) jsmooth로 exe 파일을 만들어 실행 할 경우 프로젝트의 메인에 다음 구문을 추가합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import java.lang.reflect.Field; import java.nio.charset.Charset; public CText { public

Naver Blog

[mybatis, hikaricp, oracle] Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 38; 문서 루트 요소 &quot;oraErrorSqlStateSqlExceptionMapping&quot;은(는) DOCTYPE 루트 &quot;null&quot;과(와) 일치해야 합니다.

oracle DB 설정 중 아래와 같은 오류 발생. Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 38; 문서 루트 요소 "oraErrorSqlStateSqlExceptionMapping"은(는) DOCTYPE 루트 "null"과(와) 일치해야 합니다. 확인 결과. mapperLocations 에러 에러가 발생했는데 보통 설정 할 때 아래와 같이 설정한다. <property name="mapperLocations"> <array> <value>classpath*:/${databaseType}/**/*.xml</value> </array> </property> 이 경우 모든 경로의 xml을 다 읽는다는 의미인데 오라클만 신기하게 동작하지 않는다. 아래 처럼 수정하면 해결됨 <property name="mapperLocations"> <array> <value>classpath:/${databaseType}

Naver Blog

tomcat server mode

서버가 windows 7이나 10 등이 아닌 windows server라면 자동으로 server mode로 동작한다. [확인방법] jconsole을 실행해서 VM Summary 탭으로 가서 Virtual Machine이 Java HotSpot(TM) Server VM version xxx 라면 서버 모드이다.

Naver Blog

service로 기동중인 tomcat을 jconsole로 확인하는 방법

1. tomcat 홈페이지에 가서 jmx 다운받아서 tomcat의 lib 폴더에 추가 ( 반드시 tomcat 버전과 맞아야 함 ) 2. java option에 아래 내용 추가 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=[사용할 port] -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=[서버 IP]

Naver Blog

[oracle] & 문자를 insert 하는 방법

INSERT INTO TB_USER(USER_NAME) VALUES('young&shin'); 을 실행하면 에러가 발생한다. 이 경우 & 를 || chr(38) || 로 변경하면 된다. INSERT INTO TB_USER(USER_NAME) VALUES('young' || chr(38) || 'shin');

Naver Blog

[mssql] user_connections ( max connection )

접속 가능한 connection을 의미하는 user connections의 대한 내용은 아래와 같습니다. - 인스턴스 하나 당 설정 가능한 최대값은 32767입니다. - 인스턴스란 CREATE DATABASE 문에 의해 생성된 DB 스키마를 의미합니다. - default value는 0인데 여기서 0은 unlimit ( 32767 ) 을 의미합니다. - 현재 값을 확인할 수 있는 쿼리는 EXEC sp_configure; 입니다. [출처] https://docs.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server?view=sql-server-2017 Maximum Capacity Specifications for SQL Server - SQL Server Maximum Capacity Specifications for SQL Server 8 minutes to read Contributors

Naver Blog

[naver xss 방지] lucy xss filter

[Lucy XSS Filter 소개] XSS(Cross Site Scripting) 공격을 방어하는 JAVA 라이브러리 - 화이트 리스트(White List) 설정 방식 - 블랙리스트 방식에 비해 새로운 공격 유형에 더 안전함 - 규칙을 선언한 XML 파일 사이의 상속, 오버라이딩 가능 - 보안 정책을 정하는 부서에서 상위 설정 파일을 제공하고 서비스별로 필요한 정책을 하위 선언 파일에 기술하는 방식으로 사용이 가능함 - 메모리를 효율적으로 쓰는 SAX 방식의 HTML 파싱 모듈 제공 - HTML5, HTML4 Transitional DTD 명세 지원 - 공격 패턴 검출 시 주석문으로 알림 - <!-- Not Allowed Tag Filtered -→ 주석을 추가해서 허용되지 않는 태그임을 알려줌 - 기능 확장이 지점 제공 (ElementListener, AttributeListener) - Malformed HTML도 파싱 가능 - EBNF(Extended Backus-Naur F

Naver Blog

Cross Site Scripting ( XSS ) 개념 및 방지 방법 ( 작성 중. 작성 완료되면 제목도 변경할 예정 )

XSS ( Cross Site Scripting ) XSS는 브라우저로 전송하는 페이지에서 사용자가 입력하는 데이터를 검증하지 않거나, 출력 시 위험 데이터를 무효화 시키지 않을 때 발생한다. 일반적으로 사용자의 브라우저를 목표로 하는 세 가지 형태의 크로스 사이트 스크립팅(XSS)이 있다. 1) Reflected XSS ( 반사 XSS ) 반사식 XSS 공격은 검색 결과, 에러 메시지 등 서버가 외부에서 입력 받은 값을 받아 브라우저에게 응답할 때 전송하는 과정에서 입력되는 변수의 위험한 문자를 사용자에게 그대로 돌려주면서 발생한다. 2) Stored XSS 악성 스크립트를 영구히 저장해 놓는 방법. 게시판 등에 악성 스크립트를 삽입해 놓으면, 사용자가 사이트를 방문하여 악성 스크립트가 저장되어있는 페이지에 정보를 요청할 때, 서버는 악성 스크립트를 사용자에게 전달하여 사용자 브라우저에서 스크립트가 실행되면서 공격한다. 3) DOM XSS DOM(Document Object Mod

Naver Blog

[oracle] ORA-04091 테이블이 변경되어 트리거/함수가 볼 수 없습니다.

오라클에서 트리거를 건 테이블을 UPDATE 할 수 없다. UPDATE를 하기 위해서는 :NEW.컬럼 := '값'; 의 형태가 되어야 한다. 단, 트리거 유형을 AFTER로 하면 안되고 BEFORE로 해야 한다.

Naver Blog

[singleton pattern] 싱글턴 패턴

싱글턴 패턴(singleton pattern)이란? - 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조 할 수 있도록 하는 패턴 - 하나의 인스턴스만을 생성하는 책임이 있으며 getInstance 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행한다. 싱글턴 패턴을 쓰는 이유 - 메모리 낭비를 방지 - 싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다. - DBCP(DataBase Connection Pool)처럼 공통된 객체를 여러개 생성해서 사용해야 하는 상황에서 많이 사용 싱글턴 예제 하나의 공유 프린터를 여러 명이 사용한다고 하자. 1 2 3 4 public class Printer { public Printer() { } public void print() { ... } } cs 이 프린터를 사용하려면 client에서 new Printer()가

Naver Blog

[Command pattern] 커맨드 패턴

커맨드 패턴(Command pattern) 이란? - 요청을 객체의 형태로 캡슐화(1)하여 명령을 단순화한다. - 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할 때 유용하다. - 실행될 기능을 캡슐화함으로써 기능의 실행을 요구하는 호출자(Invoker) 클래스와 실제 기능을 실행하는 수신자(Receiver) 클래스 사이의 의존성을 제거한다. - 따라서 실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용 할 수 있도록 해준다. - '행위(Behavioral) 패턴(2)'의 하나 [참고] (1) 캡슐화(encapsulation) - 객체의 속성(data field)과 행위(method)를 하나로 묶는다. - 실제 구현 내용 일부를 외부에 감추어 은닉한다. (2) 행위 패턴 - 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴 - 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로

Naver Blog

[Strategy pattern] 스트래티지 패턴

스트래티지(Strategy pattern) 패턴이란? - 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴 - 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐되어있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴 - '행위패턴'의 하나 - 즉, 전략을 쉽게 해주는 디자인 패턴이다. - MVC 패턴에서 뷰는 무엇인가 스크린에 그리는 방법(How)에 대해서는 알지만 어떤 내용(What)을 담을 지는 컨트롤러가 알려주기 전까지는 알 수 없다. 다른 컨트롤러로부터 다른 내용의 출력 형태나 내용이 달라지게 되면 그 때마다 뷰의 출력내용이 달라지게 된다. 이 경우 컨트롤러는 뷰의 스트래티지가 된다. MVC에서 뷰와 컨트롤러는 스트래티지 패턴을 기반으로 한다. 스트래티지 패턴의 구조 - Strategy : 인터페이스나 추상 클래스로 외부에서 동일한 방식으로 알고리즘을 호출하는 방법을 명시 - Conc

Naver Blog

select2 options

Option 자료형 기본값 설명 width string resolve selectbox의 넓이 조절 minimumResultsForSearch integer 0 검색결과를 표시하는 최소 입력 글자 수. -1을 설정할 경우 검색창이 나타나지 않음

Naver Blog

[다국어] 웹페이지에서 언어 변경

1. 현재 Locale 값을 얻어올 수 있는 LocaleUtil.java 만들기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.web.servlet.i18n.SessionLocaleResolver; public class

Naver Blog

null을 공백문자(empty string) 으로 변경하는 방법

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 방법 1. 사용자 정의 함수 생성. public String toString(Object o) { return toString(o, ""); } public String toString(Object o, String nullDefault) { return (o != null) ? o.toString() : nullDefault; } // 방법 2. Objects.toString 사용 (JAVA 7 이상 지원) System.out.println(Objects.toString(v, "")); // 공백 문자 출력 System.out.println(Objects.toString(v, "홍길동")); // "홍길동" 출력 // 방법 3. Optional.ofNullable(v).orElse("") System.out.println(Optional.ofNullable(v).orElse(""); // 공백 문자 출

Naver Blog

[java] LIST에서 특정 값 찾기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 List<String> list = new ArrayList<String>(); list.add("임꺽정"); list.add("신사임당"); list.add("을지문덕"); list.add("이순신"); int i=0; // 권장하지 않는 방법 for(i=0; i<list.size(); i++) { if(list.get(i).equals("이순신")) { System.out.println("for 위치 : " + i); } } // 권장하는 방법 i = list.indexOf("이순신"); System.out.println("indexOf 위치 : " + i); cs

Naver Blog

HTML to Excel 데이터 타입 지정

HTML to Excel : mso-number-format style attribute 엑셀 출력을 하다보면 전화번호가 01011112222가 있을 때 숫자로 판단하여 1011112222 와 같이 맨 앞의 0이 잘려버리는 현상이 발생한다. 이것을 해결하기 위해서는 <td style='mso-number-format:타입'> 방식을 사용하면 된다. 1 2 3 4 5 <style> td.int { mso-number-format:\#\,0; text-align:right; } td.decimal-2 { mso-number-format:\#\,0\.00; } td.text {mso-number-format:\@} </style> Colored by Color Scripter cs NO Decimals : mso-number-format:”0″ 3 Decimals : mso-number-format:”0\.000″ Comma with 3 dec : mso-number-format:”\#\

Naver Blog

mybatis에서 map일 경우 key를 변경 하는 방법

오라클의 경우 쿼리의 결과의 키가 무조건 대문자로 리턴된다. 이것을 소문자로 쓰고 싶거나 camelcase로 변경하여 사용하고 싶을 때 Map을 상속받는 클래스를 생성하고 put 함수를 가로채 key를 변경하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import org.apache.commons.collections.map.ListOrderedMap; import org.apache.commons.lang.StringUtils; public class CustomMap extends ListOrderedMap { /** serialVersionUID */ private static final long serialVersionUID = -7700790403928325865L; /** * key 에 대하여 소문자로 변환하여 super.put * (ListOrderedMap) 을 호출한다. * @param key * -

Naver Blog

mybstis typeAlias 사용하기

mybatis에서 parameterType이나 resultType에 VO를 사용하려면 com.abc.project.UserVO 와 같이 경로를 모두 써줘야 해서 불편하다. typeAlias를 이용하여 짧게 변경할 수 있는데 사용법은 크게 2가지가 있다. 1. 클래스 단위 등록 - mybatis 설정 파일에 typeAliases를 등록한다. 1 2 3 4 5 6 7 <settings> ... </settings> <typeAliases> <typeAlias alias="test" type="com.test.vo.TestVo"/> </typeAliases> Colored by Color Scripter cs 2. 패키지 단위 등록 - 이 경우는 특정 패키지에 vo를 모두 넣어놨을 때 사용하는 방법. 2.1 VO에 Alias 작성 1 2 3 4 5 6 7 8 package com.test.vo; import org.apache.ibatis.type.Alias; @Alias("test")

Naver Blog

[spring 3.2.9] spring batch 사용하기

[BATCH 샘플 코드] 1) pom.xml 1 2 3 4 5 <dependency> <groupId>org.springframework.batch</groupId> <artifactId>spring-batch-core</artifactId> <version>2.2.4.RELEASE</version> </dependency> Colored by Color Scripter cs 2) .springBeans 파일에 context-batch.xml 경로 추가 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0" encoding="UTF-8"?> <beansProjectDescription> <version>1</version> <pluginVersion><![CDATA[3.9.4.201804120850-RELEASE]]></pluginVersion> <configSuffixes> <configSuffix><![CDATA[xml

Naver Blog

[eclipse] lombok 사용법

1. maven에 lombok 추가 1 2 3 4 5 6 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope> </dependency> cs 2. lombok 다운로드 경로로 이동 3. lombok.jar 파일을 더블클릭하여 실행하면 설치된 IDE 목록이 나오는데, 이중에 없다면 "Specify location.." 버튼을 클릭하여 eclipse 경로 지정 4. Install / Update 버튼 클릭 5. Quit Installer 버튼 클릭 6. eclipse 경로로 이동 7. eclipse 경로에 lombok.jar 파일이 없다면 파일을 추가 8. eclipse.ini 파일 open 9. 아래 설정이 없거나 다르다면 수정 ( 반드시 -vmargs 가 있어야 함 ) -vmargs -javaagent:

Naver Blog

[디자인 패턴] 디자인 패턴이란?

디자인 패턴이란 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 설계된 노하우를 축적하여 이름을 붙여, 이후에 재사용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것이다. 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결책 사이에도 공통점이 있다. 이러한 유사점을 패턴이라 한다. 객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용한다. 패턴은 공통의 언어를 만들어주며 팀원 사이의 의사 소통을 원활하게 해주는 아주 중요한 역할을 한다. 예를 들어 "기능마다 별도의 클래스를 만들고, 그 기능들로 해야 할 일을 한번에 처리해주는 클래스를 만들자."라고 하는 것 보다 "Facade 패턴을 써보자" 라고 제안하는 쪽이 이해하기 쉽다. 디자인 패턴 구조 콘텍스트(context) 문제가 발생하는 상황을 기술한다. 즉,

Naver Blog

[Decorator pattern] 데코레이터 패턴

데코레이터 패턴이란? 객체의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주는 패턴 즉, 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에 각 추가 기능을 Decorator 클래스로 정의한 후 필요한 Decorator 객체를 조합함으로써 추가 기능의 조합을 설계 하는 방식이다. 문제의 시작 커피를 주문할 때는 우유, 물, 얼음, 모카 등을 추가 하고, 그 위에 휘핑 크림을 얹기도 한다. 각각을 추가할 때마다 커피 가격이 올라가기 때문에 주문 시스템에도 그런 점들을 모두 고려해야 한다. 에스프레소, 아메리카노, 아이스 아메리카노, 라떼, 아이스 라떼 등 각각 클래스로 만들면 너무 많고 커피가 추가될 때마다 새로운 클래스를 만들어야 한다. 첨가물(우유, 모카 등)의 가격이 변경되면 모든 클래스의 cost()를 변경해야 한다. 문제의 해결 특정 음료(에스프레소) 부터 시작해서 첨가물들로 "장식" 한다. 모든 데코레이터는 cost() 메소드를 갖는다. cost()에서는 부모

Naver Blog

[spring + soap + schedule + maven] SOAP client

개발환경 1. STS 2.9.7 2. axis2 1.7.9( 다운로드 받아야 함 ) 프로젝트 생성 1. Package Explorer에서 마우스 우클릭 > New > Spring Legacy Project 클릭 2. 프로젝트 이름 입력 후 Spring MVC project 클릭 후 Finish 버튼 클릭 프로젝트 설정 1. 마우스 우클릭 > Maven > Update Project... 메뉴 클릭 ( 매우 중요 ) SOAP을 하기 위해서는 [마우스 우클릭 > Properties > Project Facets]에서 Axis2 Web Service를 체크 해야 한다. Axis2 Web Service를 사용하기 위해서는 Dynamic Web Module을 체크하고 2.5로 버전을 변경해야 한다. 그런데, Dynamic Web Module을 체크하고 "Apply and Close" 버튼을 누르면 프로젝트에 "WebContent" 폴더가 생기는데 이 폴더가 존재하면 java 기능이 정상적으로

Naver Blog

Spring + Apache cxf를 이용한 SOAP XML 통신 Server

Apache cxf란? Apache cxf 프레임워크를 이용하면 SOAP 통신을 할 수 있다. Apache cxf의 장점은 spring과의 연동이 가능하다는 점이다. 개발환경 JDK 1.8 / Spring 3.2 / apache cxf 2.6.2 진행 순서 1. apache cxf 2.6.2 버전 (apache-cxf-2.6.2.zip) 다운로드 ( https://archive.apache.org/dist/cxf/2.6.2/ ) - 2. spring legacy project > Spring MVC project 생성 3. [Window > Preferences] 메뉴에서 Web services에 Apache CXF 2.x 등록 3.1. Server and Runtime에 Apache CXF 2.x 등록 3.2 CXF 2.x Preferences에 경로 지정 4. pom.xml에 dependency 추가 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Naver Blog

Apache cxf를 이용한 SOAP XML 통신 Client

웹 서비스를 제공하는 서버(정보 제공자)는 WSDL을 발행해준다. WSDL이란 Web Services Description Language의 약자로 '웹서비스에 대한 정의서'이다. 이 WSDL에는 웹 서비스에 대한 구체적인 내용이 들어있다. 서비스를 제공해주는 URI / 요청과 응답에 대한 메시지 포멧 / 오퍼레이션 등이 기재되어있다. 클라이언트는 WSDL을 통해 서버와 통신을 한다. 1. apache cxf 2.6.2 버전 (apache-cxf-2.6.2.zip) 다운로드 ( https://archive.apache.org/dist/cxf/2.6.2/ ) 2. spring legacy project > Spring MVC project 생성 3. [Window > Preferences] 메뉴에서 Web services에 Apache CXF 2.x 등록 3.1. Server and Runtime에 Apache CXF 2.x 등록 3.2 CXF 2.x Preferences에 경로 지정

Naver Blog

JSP / JSTL 에서 URL encode 하는 방법

<c:url />을 사용한다. 사용방법 1 2 3 4 5 <c:url value="/yourClient" var="url"> <c:param name="yourParamName" value="http://google.com/index.html" /> </c:url> <a href="${url}">Link to your client</a> Colored by Color Scripter cs 결과 1 <a href="/yourClient?yourParamName=http%3a%2f%2fgoogle.com%2findex.html">Link to your client</a> cs [주의사항] <c:url />을 사용할 경우 contextPath가 자동으로 들어간다. 만약 URL 주소 : http://localhost/wsm/yourClient contextPath : http://localhost/wsm 라면 결과는 1 <a href="/wsm/yourClient?yourParamName=

Naver Blog

[jqGrid] gridUnload

$("#jqGrid").jqGrid("GridUnload"); 안되면 $.jgrid.gridUnload('#jqGrid'); 사용

Naver Blog

DB에 byte로 insert 하기, select 후 string으로 변경하기

JAVA Controller 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public void testByte() throws Exception { String tmp = "<html><body><p>홍길동</p></body></html>"; String cd = String.valueOf(System.currentTimeMillis()); map.put("CD", cd); map.put("VAL", tmp.getBytes()); dao.insertTest(map); Map<String, Object> tmpMap = dao.selectTest(); byte[] data = (byte[]) tmpMap.get("VAL"); String str = new String(data); System.out.println("########"); System.out.println(data); System.out.println(str); } Colored by Col

Naver Blog

Spring i18n ( 다국어 ) - Locale Resolver

Locale Resolver의 종류 1. AbstractLocaleContextResolver http의 헤더의 Accept-Language에 의해 선택된다. setLocale이 지원되지 않는다. 오직 브라우저 설정에 의해서만 결정 2. SessionLocaleResolver 처음 들어갈 때는 AccpetHeaderLocaleResolver처럼 브라우저의 언어 설정에 의한 Accept-Language로 값이 결정된다. 단, setDefaultLocale을 설정한다면 이 값이 최우선 세션으로 저장되며 org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE 라는 세션 속성이름으로 클래스를 시리얼라이징 되어 저장 3. CookieLocaleResolver SessionLocaleResolver와 속성이 동일하지만 lang 값이 바뀔 경우 세션이 아닌 쿠키에 저장된다. 때문에 SessionLocaleResolver의 경우 세션이

Naver Blog

인증 오류가 발생했습니다. / 요청한 함수가 지원되지 않습니다. / 원격데스크톱 연결오류

갑자기 원격 데스크톱이 연결 안될 경우 해결방법 1. 윈도우키+R(실행창 오픈) 이후 gpedit.msc 입력 (로컬 그룹 정책 편집기 화면이 열림) 2. [컴퓨터구성 > 관리 템플릿 > 시스템 > 자격 증명 위임] 메뉴로 이동 3. "Oracle 수정 암호화"에서 마우스 우클릭 -> 편집 선택 4. Oracle 수정 암호화 사용 클릭 > 보호수준 취약 선택 > 적용 버튼 클릭 출처 : https://m.blog.naver.com/gmrdud2gh/221275206353

Naver Blog

[web] 인코딩 ( 한글 깨짐 )

HTML 1 <meta charset="utf-8"> cs XHTML 1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> cs

Naver Blog

Java EE 개발자는 항상 -server 옵션을 켜 두는 것이 좋다.

JVM에 -server 옵션을 지정하면 일반적인 상태(client 상태)보다 더 많은 최적화 방법을 동원하는데, 예를 들어 반복문 내부에서 전혀 값이 바꾸지 않는 내용을 반복문 밖으로 빼내는 등의 최적화 작업이 일어난다. 따라서 -server 옵션을 지정하지 않은 상태로 개발이나 테스트 과정을 진행하고 실 서버에 적용할 때에만 -server 옵션을 지정하면, 프로그램이 예상했던 대로 작동하지 않을 가능성이 있다. 여기 나온대로 개발자는 항상 운영 환경과 동일한 VM 설정을 해야한다. 같은 Java 코드라도 -server 냐 -client 냐에 따라 최적화 방식이 달라지고 코드가 다르게 작동한다. 이와 같은 현상에 대해 Effective Java 2nd ed. Item 66 에서도 다루고 있다. -client와 -server 옵션에 따라 코드의 해석이 달라지고 행동도 달라진다. 따라서 되도록 테스트 WAS를 띄울때 -server 옵션을 주고 띄워야 한다. (운영 서버는 항상 -serv

Naver Blog

mssql maven

sqljdbc4.jar를 다운받은 후 pom.xml에 아래 내용 추가 1 2 3 4 5 <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version> </dependency> cs

Naver Blog

테이블/컬럼 존재 여부 확인하기

MySQL MySQL은 information_schema가 하나의 데이터베이스로 관리되고 테이블 정보를 담고 있는 "TABLES" 테이블도 실제적인 자세한 정보를 담고 있다. 1 2 SELECT COUNT(*) cnt FROM information_schema.tables WHERE table_schema = 'DB명' AND table_name = '테이블명'; cs 컬럼 확인은 아래와 같이 columns 테이블을 확인한다. 1 2 SELECT * FROM information_schema.columns WHERE table_schema = 'DB명' AND table_name = '테이블명' AND column_name = '컬럼명'; cs Oracle 오라클의 경우에는 "ALL_TABLES" 테이블를 조회하면 된다. 1 SELECT COUNT(*) cnt FROM ALL_TABLES WHERE TABLE_NAME = '테이블명'; cs 컬럼은 ALL_TAB_COLUMNS 를 확

Naver Blog

[토스행운퀴즈] 2019-07-02 후퍼옵틱

여름철 자동차 내부로 들어오는 자외선과 뜨거운 태양열을 차단하기 위해 자동차 유리에 하는 것은? --> 틴팅 질화티타늄이 주성분인 후터옵틱의 나노세라믹 필름은 일반 필름에 비해 xxx이 높아 --> 내구성 후퍼옵틱 나노세라믹 틴팅 필름은 일반 염료 필름보다 약 3배 더 높은 xxx 효과 --> 열차단

Naver Blog

java 동적으로 filed 값 가져오기

1 2 3 4 5 6 7 8 9 10 11 import java.lang.reflect.Field ===중략 Test test = new Test(); //필드가 포함되어 있는 class Field fd = test.getClass().getDeclaredField("필드명"); //"필드명"의 값 가져오기 String testFieldVal = (String)fd.get(test); //필드 객체의 get 함수에 class 객체를 넘기고 해당 변수의 형으로 캐스팅 cs 출처 : https://m.blog.naver.com/PostView.nhn?blogId=joypheonix&logNo=100163503643&proxyReferer=https%3A%2F%2Fwww.google.com%2F java 동적으로 filed 값 가져오기 import java.lang.reflect.Field ===중략 Test test = new Test(); //필드가 포함되어 있는 class Fiel.

Naver Blog

[queryDSL] CASE WHEN

queryDSL에서 CASE WHEN 구문을 사용하기 위해서는 CaseBuilder()를 사용하면 된다. 1. CaseBuilder의 사용 예 1 1 2 3 4 5 Expression<String> cases = new CaseBuilder() .when(c.annualSpending.gt(10000)).then("Premier") .when(c.annualSpending.gt(5000)).then("Gold") .when(c.annualSpending.gt(2000)).then("Silver") .otherwise("Bronze"); cs 2. CaseBuilder의 사용 예 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import static kr.com.wow.QTbUser; // 클래스 및 함수 선언부 생략 JPAQuery<TbUser> query = jpaQueryFactory .from(tbUser) .select(Projections.bean(TbUse

Naver Blog

[java] BigInteger

BigInteger 개요 java의 64비트 정수인 long은 9223372036854775807 까지의 숫자를 나타낼 수 있습니다. 그 이상의 정수가 필요하다면 BigInteger를 사용해야 합니다. BigInteger는 숫자의 크기에 제한이 없습니다. BigInteger 사용법 1 2 3 4 5 6 7 8 9 10 11 12 13 import java.math.BigInteger; public class Test { public static void main(String[] arg){ BigInteger bi = new BigInteger("100"); BigInteger bi2 = new BigInteger("2"); System.out.println("곱하기 => "+bi.multiply(bi2)); System.out.println("나누기 => "+bi.divide(bi2)); System.out.println("빼 기 => "+bi.subtract(bi2)); Syste

Naver Blog

[querydsl] string 사용

asString을 사용하면 된다. import static com.querydsl.core.types.dsl.Expressions.asString; asString("READ").as("type")

Naver Blog

[java] Map을 POJO(VO, class)로 변경

방법 1. org.codehaus.jackson.map.ObjectMapper 사용 * [참고] 이 방법은 Map에는 존재하는데, POJO에 값이 없다면 에러가 합니다. import org.codehaus.jackson.map.ObjectMapper; Map<String, Object> map = new HashMap<>(); map.put("userId", "admin"); map.put("userName", "administrator"); ObjectMapper mapper = new ObjectMapper(); UserVO user = mapper.convertValue(expectedMap, UserVO.class); 방법 2. com.google.gson.Gson 사용 import com.google.gson.Gson; import com.google.gson.JsonElement; Map<String, Object> map = new HashMap<>(); map.put(

Naver Blog

[tomcat] 대용량 파일 업로드 실패 ( 파일 전송 실패, tomcat maxPostSize )

WAS를 Tomcat을 사용할 경우 대용량 파일이 업로드가 안되고 URLConnection으로도 전송이 안되는 문제가 발생할 수 있습니다. 그 이유는, POST 방식에도 용량, 개수 제한이 있기 때문인데 이때 필요한 설정이 maxPostSize와 maxParameterCount입니다. ( GET 방식만 제한이 있는 것이 아닌, POST 방식도 제한이 있습니다. ) POST 전송 SIZE와 parameter의 개수를 설정 가능하며, 무한대로 설정할 수도 있습니다. maxParameterCount : 최대 parameter 개수 - 0보다 작은 수로 설정할 경우 무제한 - default value : 10000 The maximum number of parameter and value pairs (GET plus POST) which will be automatically parsed by the container. Parameter and value pairs beyond this l

Naver Blog

Apache + Tomcat 연동

개발 환경 - Windows 10 ( 64 bit ) - Apache24 - Tomcat 8.5 Apache와 Tomcat을 연동하는 이유 - Tomcat 서버는 서블릿 컨테이너의 역할만 하고, Apache는 Web server의 역할을 하도록 각각의 기능을 분리하기 위해 연동을 할 수 있습니다. - Apache HTTP Server에서 제공하는 편리한 기능을 사용하기 위해서 연동을 할 수 있습니다. - Load Balancing 기능을 사용하기 위해 연동을 할 수 있습니다. ※ Apache와 Tomcat을 연동하는 방법들은 아래 3가지가 있는데 mod_jk를 많이 사용한다고 합니다. - mod_jk - mod_proxy - mod_proxy_ajp ※ AJP란? 아파치가 웹 서버와 서비스(Tomcat 등)을 연동하기 위해 정한 프로토콜 Apache 24 설치 1. Apache 24 Download 1) https://www.apachelounge.com/download/에 접속 2

Naver Blog

Apache + Tomcat Load Balancing

Apache + Tomcat 연동은 되어있다고 가정하고 그 이후 부터 진행합니다. https://blog.naver.com/yjhyjh5369/221910887060 Apache + Tomcat 연동 개발 환경- Windows 10 ( 64 bit )- Apache24- Tomcat 8.5Apache와 Tomcat을 연동하는 이유- ... blog.naver.com ※ tomcat을 두 개 설치 되어있어야 합니다. 1. workers.properties 파일 변경 (apache24 설치 경로)/conf/workers.properties 파일 open 후 아래와 같이 변경 worker.list=load_balancer worker.load_balancer.type=lb worker.load_balancer.balance_workers=tc1,tc2 worker.tc1.port=8009 worker.tc1.host=localhost worker.tc1.type=ajp13 worker.t

Naver Blog

[tomcat] cache-control

js, image, jsp 등을 변경했는데 반영이 안되는 경우가 있습니다. 그 이유는 브라우저가 "browser cache"를 사용하기 때문인데 이것을 사용하는 이유는 아래와 같습니다. 1) 인터넷에서 다운받는것보다 하드디스크에서 가져오는 것이 빠릅니다. 2) 대부분의 웹 사이트가 여러 페이지에 동일한 요소를 많이 가지고 있습니다. - 예를 들어 사이트(회사) 로고의 경우 동일한 이미지를 모든 페이지에서 다운받을 필요가 없습니다. 3) 2번과 같은 이유로 불필요한 traffic이 발생합니다. 하지만 고객사를 대상으로 한 관리자 웹 페이지를 유지보수 하다 보면 장애가 발생하여 수정해서 반영했지만 고객이 보기에 똑같은 상황, 또는 java는 반영이 되었는데 jsp/javascript는 반영이 안되어 오류가 발생하는 경우가 있습니다. browser cache를 사용하지 않아도 되는 경우 두가지 방법 중 하나를 선택 하여 brower cache control을 할 수 있습니다. 방법 1.

Naver Blog

[ibatis/mybatis] large resultSet, 대용량 select

조회화면에서 엑셀 다운로드를 개발해야 하는데, 조회화면은 한 화면에 10~20건씩 보여주더라도 엑셀 다운로드는 모든 데이터를 조회해서 export 해야 합니다. 이 경우 DB tool에서 직접 조회하면 1초 이내로 조회되는데, ibatis/mybatis 를 통해서 조회화면 몇십초씩 걸리는 경우가 있습니다. 이럴 때 fetchSize를 이용하여 성능을 높일 수 있습니다. <!-- ibatis --> <select id="selectListToExcel" resultClass="java.util.Map" fetchSize="1000"> fetchSize는 설정하지 않으면 기본 값은 10입니다. fetchSize가 10일 경우 DB 데이터가 1,000건이면 실제 DB에서 100번을 조회하게 되고, fetchSize가 1,000일 경우 한번만 조회하게 됩니다. 따라서 비약적인 성능 향상을 기대할 수 있습니다. 참고한 사이트에서 어떤 사용자는 109k의 기록을 검색하는데 1분 40초가 소요되

Naver Blog

[ibatis] java 배치 개발 시 OOM(Out of memory) 해결방안

배치 프로그램을 만들 때 일반적으로 ibatis에서 data list를 select 후 DAO에서 List로 받아서 Loop 돌면서 처리 하는데 이 경우 너무 많은 데이터를 처리하다 보면 Out of memory 오류가 발생합니다. 모든 데이터를 메모리에 담아서 처리하니까 메모리가 많이 필요 할 수 밖에 없습니다. 이럴 때 queryWithRowHandler를 사용하면 데이터를 한 건씩 반환받아서 처리할 수 있습니다. 아래와 같이 개발 할 수 있습니다. RowHandler import java.util.Map; import com.ibatis.sqlmap.client.event.RowHandler; public class RowHandlerCallback implements RowHandler { @Override public void handleRow(Object arg0) { Map<String, String> map = (Map<String, String>) arg0; Syst

Naver Blog

java에서 IPv4 사용하는 방법(tomcat 등 WAS에서 request.getRemoteAddr() 함수 사용시 IPv4 주소 반환

Java는 OS에서 IPv4와 IPv6를 모두 사용 가능할 경우 IPv6를 우선적으로 사용하게 됩니다. 그래서 netstat 등의 명령어를 사용해서 네트워크 정보를 볼 경우나 Java에서 request.getRemoteAddr() 함수 호출 시 IPv6로 보이게 됩니다. IPv4 주소만 사용하는 방법 - java.net.preferIPv4Stack (default: false) 1. Java VM 구동 시 아래 옵션을 추가합니다. - eclipse 사용 시 eclipse.ini 파일에 추가 -Djava.net.preferIPv4Stack=true 2. linux에서 tomcat을 사용할 경우 bin/setenv.sh 에 아래 옵션을 추가합니다. #!/bin/sh JAVA_OPTS=" -Djava.net.preferIPv4Stack=true ${JAVA_OPTS} " 3. windows에서 tomcat을 사용할 경우 bin/setenv.bat에 아래 옵션을 추가합니다. @ECHO OF

Naver Blog

[Spring, JPA] ID가 없는 DB뷰에 스프링 데이터 사용

아래와 같은 VIEW가 있다고 가정합니다. CREATE OR REPLACE VIEW COMPANY_TO_PERSON AS SELECT COMPANY.NAME AS COMPANY_NAME, PERSON.NAME AS PERSON_NAME FROM COMPANY LEFT JOIN PERSON ON COMPANY.COMPANY_ID = PERSON.COMPANY_ID; 일반적으로 이런 경우 Java Entity에 mapping 하려면 Spring Data를 사용하면 됩니다. @Entity @Table(name = "COMPANY_TO_PERSON") // A view! public class Company2Person { // This won't work as the entity has no @Id! @Column(name = "COMPANY_NAME") private String companyName; @Column(name = "PERSON_NAME") private String pe

Naver Blog

JPA 하이버네이트 자동 키 생성 - 테이블 전략

DB에는 auto_increment라는 것이 존재하는데, 이것은 PK의 값을 자동 증가시키겠다는 것입니다. 대표적으로 게시판이나 history 테이블이 auto_increment를 사용하는 대표적인 테이블이라고 할 수 있습니다. 하지만 auto_increment를 사용하는 테이블을 JPA에서 사용할 때 큰 문제가 있습니다. JPA를 사용하는 가장 큰 이유는 DB 별로 쿼리를 따로 만들지 않겠다는 것인데, auto_increment를 사용하면 DB 별로 다른 전략을 사용해야 하기 때문입니다. 또한 각 DB 별로 sequence를 생성해야 하는 문제도 있습니다. 그래서 JPA를 사용할 경우 테이블 전략을 사용하는 것이 좋습니다. 테이블 전략을 사용한 History class는 아래와 같습니다. @Entity @TableGenerator(name="SEQ_TB_HISTORY", table="TB_SEQUENCES", pkColumnValue="HISTORY_SEQ", allocationS

Naver Blog

[Spring Boot Error] Check your ViewResolver setup

Spring boot project 시작 시 아래와 같이 오류가 발생한다면 project 생성 할 때 thymeleaf 체크박스를 체크하지 않아서 입니다. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

Naver Blog

[Spring] Controller에서 List<Object> 데이터 받기

Spring MVC Controller에서 List<Object>를 받기 위해서 아래와 같이 사용합니다. public class User { private String name; private int age; // get, set } public class Param { private List<User> userList; // set, get } @RequestMapping("/user/saveUser") @ResponseBody public String saveUser(Param param) { for(User user : param.getUserList()) { log.info(user.getName()); } } 그리고 javascript에서 아래와 같이 서버로 전송합니다. var userList = []; var user1 = {name: 'yun', age: 19}; var user2 = {name: 'shin', age: 17}; userList.push(user1); u

Naver Blog

[Spring] @Valid 예외를 전역 컨트롤러로 처리

Spring을 사용하면 parameter를 받을 때 @Valid를 사용해서 검증을 할 수 있는데 아무 처리도 하지 않는다면 아래와 같이 복잡하고 긴 결과를 리턴 받게 됩니다. 이렇게 리턴을 받게 되면 traffic 문제도 있고, 불필요한 정보도 노출되게 됩니다. 이 문제들을 피하기 위해 아래와 같이 @ControllerAdvice를 이용해서 변경할 수 있습니다. * 참고 다른 블로그나 해외 사이트들을 검색했을 때 @ExceptionHandler(MethodArgumentNotValidException.class)를 사용하라고 되어있었으나 저 같은 경우는 BindException.class를 사용해야 정상 동작을 했습니다. import javax.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; @Getter @Setter public class ApproveParam { @NotBlank priv

Naver Blog

[spring boot] 다국어

1. message.properties 파일 생성 위와 같이 message_국가코드.properties 파일을 생생성합니다. 2. MessageConfig 파일 생성 package com.wowsoft.api; import java.util.Locale; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ReloadableResourceBundleMessageSource; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servl

Naver Blog

[JPA] 동적으로 schema, catalog 사용

JPA에서 DB 스키마가 동적으로 변경되어야 할 때 @Table(schema=스키마명) 을 사용합니다. 그런데 만약 상황에 따라 자유롭게 schema 이름을 변경해야 한다면 어떻게 해야 할까요? 아래와 같은 Entity가 있다고 가정해봅시다. - GLOBAL 스키마에 TB_USER 테이블 import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import lombok.Getter; import lombok.Setter; @Setter @Getter @Entity @Table(catalog="global") public class TbUser { @Id private String userId; @Column private String userNameKr; @Column pri

Naver Blog

[java] mybatis에서 boolean을 return

VO에서 받는 자료형이 boolean일 때 query의 결과가 1이면 true, 0이면 false입니다. 1. VO public class User { String userName; int age; boolean isAdult; } 2. mybatis SELECT USER_NAME AS userName ,AGE AS age ,CASE WHEN AGE <![CDATA[ >= ]]> 20 THEN 1 ELSE 0 END AS isAdult FROM TB_USER

Naver Blog

select2 사용법

select2 공식 사이트 https://select2.org/ Getting Started | Select2 - The jQuery replacement for select boxes Select2 The jQuery replacement for select boxes Forums GitHub IRC Chat Select2 gives you a customizable select box with support for searching, tagging, remote data sets, infinite scrolling, and many other highly used options. In your language Select2 comes with support for RTL environments , searchi... select2.org array를 이용한 select 생성 <select id="select2"></select> <script> var data = [ { id:

Naver Blog

[spring boot] DB connection

apllication.properties 파일에 아래와 같이 입력 - 아래 예제는 mssql 기준 spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver spring.datasource.url=jdbc:sqlserver://127.0.0.1:1433 spring.datasource.username=root spring.datasource.password=1234

Naver Blog

[spring boot] db log4jdbc

라이브러리 추가 - 메이븐 사용시 pom.xml에 아래 내용 추가 <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <version>1.16</version> </dependency> resources/log4jdbc.log4j2.properties 파일 생성 log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator log4jdbc.dump.sql.maxlinelength=0 resources/logback.xml 파일 생성 <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyyMMdd HH:mm:ss.SSS} [%threa

Naver Blog

Eclipse + GitHub 연동

1. 연동할 GitHub repository 주소를 복사합니다. 제 주소는 아래와 같습니다. 2. Eclipse에서 [Window > Show View > Other ...] 메뉴를 클릭한 후 [Git > Git Repositories] 메뉴를 클릭합니다. 3. Clone a Git repository를 클릭합니다. 4. URI에 복사한 주소를 붙여넣기 하고 Next 버튼을 클릭합니다. - 정상적인 주소를 붙여넣기 했다면 Host, Repository path는 저절로 내용이 채워집니다. - User와 Password에는 GitHub의 ID와 Password를 입력합니다. 5. 기본 Branch master를 체크하고 Next를 클릭합니다. 6. 원격 저장소와 연결할 로컬 저장소를 설정한 뒤 Finish를 클릭합니다. 7. Git Repositories에 생긴 Repository에서 마우스 오른쪽 버튼을 클릭한 뒤 Import Projects...을 클릭합니다. 8. 저장장소를 설정

Naver Blog

eclipse 프로젝트를 GitHub에 올리는 방법

1. GitHub에 올릴 프로젝트에서 마우스 오른쪽 클릭 후 [Team > Share Project...] 메뉴 클릭 2. Git 클릭 후 Next 버튼 클릭 3. Use or create repository in parent folder of project 체크 4. Finish버튼 클릭 5. 프로젝트 목록에서 프로젝트 선택 6. Create Repository 버튼 클릭 7. Finish 버튼 클릭 8. GitHub의 주소를 복사 8. Git Repositories의 Remotes에서 마우스 오른쪽 클릭 후 Create Remote... 메뉴를 클릭 9. Create 버튼을 클릭 10. Change 버튼을 클릭 11. URI에 복사한 GitHub의 주소를 입력 후 Authentication의 User와 Password에 GitHub의 ID와 Password 를 입력한 후 Finish를 클릭 - 올바른 주소를 입력했다면 Host와 Repository path는 저절로 입력됩니다.

Naver Blog

Running code after Spring Boot starts

Spring boot 시작과 동시에 코드를 실행하는 방법 @EventListener(ApplicationReadyEvent.class) public void doSomethingAfterStartup() { System.out.println("hello world, I have just started up"); } 출처 : https://stackoverflow.com/questions/27405713/running-code-after-spring-boot-starts

Naver Blog

Spring MVC Controller에서 Date를 parameter으로 받는 방법

아래와 같이 @RequestParam을 사용하여 Date를 parameter로 받으려고 시도 할 경우 400 오류가 발생합니다. @RequestMapping(value="/fetch" , method=RequestMethod.GET) public @ResponseBody String fetchResult(@RequestParam("from") Date fromDate) { //Content goes here } HTTP Status 400: The request sent by the client was syntactically incorrect. 오류 메시지 이 경우 @DateTimeFormat Annotation을 사용하면 해결됩니다. @RequestMapping(value="/fetch" , method=RequestMethod.GET) public @ResponseBody String fetchResult(@RequestParam("from") @DateTimeFormat(pa

Naver Blog

[JPA] MSSQL에서 dbo 자동으로 넣기

JPA에서 DB 스키마가 동적으로 변경되어야 할 때 @Table(catalog=스키마명) 을 사용합니다. [중요!] catalog에 스키마명을 사용해야 합니다. 그런데 catalog만 사용할 경우 MSSQL에서 dbo가 없어서 문제가 발생합니다. 이 경우 아래와 같이 Entity를 사용하면 모든 DB에 적용 가능합니다. @Setter @Getter @Entity @Table(schema="dbo", catalog = "global") public class TbUser { @Id private String userId; @Column private String userName; } 이와 같이 하면, MSSQL의 경우 자동으로 dbo를 추가해주고, MSSQL이 아닌 경우 dbo가 들어가지 않습니다.

Naver Blog

[Spring boot] REST API 예외 처리

https://www.baeldung.com/exception-handling-for-rest-with-spring Error Handling for REST with Spring | Baeldung Exception Handling for a REST API - illustrate the Spring 3.2+ recommended approach as well as earlier solutions . www.baeldung.com

Naver Blog

json(jackson) 값이 null인 경우 직렬화 중에 필드를 무시하는 방법

REST API 등을 개발할 때 트래픽을 줄이는게 성능 향상에 도움이 되는데, 가장 만만한것 중 하나가 값이 null일 경우 return을 하지 않는 방법일 것입니다. 예를 들어 아래와 같이 userId, userName, age 중 userName, age의 값이 null이라면 userId만 return하는 것이죠 public class User { private String userId; private String userName; private Integer age; // getter // setter } @RestController public class UserController { // @RestController를 사용할 경우 @ResponseBody를 하지 않아도 됨 @RequestMapping(value="/getUserInfo", produces="application/json;charset=UTF-8") public User getUserInfo(HttpServl

Naver Blog

[Java] 날짜/시간 비교

days 비교 방법 Method 1. - java 8 이후라면 ChronoUnit를 이용한 방법을 사용할 수 있습니다. - d2가 d1로부터 며칠 지났는지 확인합니다. public static Long diffDate(Date d1, Date d2) { return ChronoUnit.DAYS.between(d1.toInstant(), d2.toInstant()); }

Naver Blog

[java] URLConnection, HttpURLConnection, http 대용량 파일 전송

URLConnection class - URLConnection 클래스는 URL이 가리키는 리소스에 대한 활성화된 연결을 나타내는 추상클래스 - 사용자 인증이나 보안이 설정되어 있지 않은 웹서버에 접속하여 파일 등을 다운로드 하는데 많이 사용 - URLConnection은 리소스에 연결하기 전에 구성되어야 한다. - URLConnection 인스턴스는 재사용 될 수 없다. 각 리소스에 대한 connection마다 다른 인스턴스를 사용해야 한다. - 자세한 내용은 공식 홈페이지 참고 https://docs.oracle.com/javase/8/docs/api/java/net/URLConnection.html URLConnection (Java Platform SE 8 ) Direct Known Subclasses: HttpURLConnection , JarURLConnection public abstract class URLConnection extends Object The abstr

Naver Blog

MSSQL 외부 접속 허용하기

1. SQL Server 구성 관리자를 실행합니다. 2. SQL Server 네트워크 구성 > MSSQLSERVER에 대한 프로토콜 선택하고 TCP/IP를 사용으로 변경합니다. 3. TCP/IP 속성 찾을 닫지 않고 IP 주소 탭을 선택한 후 사용할 IP를 찾아서 사용을 예로 변경한 후 확인 버튼을 클릭합니다. 4. SSMS(Microsoft SQL Server Management Studio)를 윈도우 인증으로 접속합니다. 5. 서버 속성을 선택합니다. 6. 보안메뉴 선택 후 서버인증 항목에서 SQL Server 및 Windows 인증모드로 변경하고 확인 버튼을 클릭합니다. 7. 서비스를 재시작합니다.

Naver Blog

[oracle 19c] listener 위치

구버전 오라클의 경우 외부 접속을 위해 listener.ora를 수정했는데 보통 오라클설치경로/network/admin/listener.ora 였습니다. 그런데 19c를 설치했는데 오라클설치경로를 아무리 찾아봐도 listener.ora가 없어서 잘못 설치 한 줄 알고 몇번씩 재설치를 했는데 못찾았는데 나중에 알고보니 19c의 경우 설치된 경로가 아닌 설치파일이 있는 경로의 network/admin/listener.ora를 바라보게 되어있었습니다. oracle에서 19c install 파일을 다운받아서 C 드라이브에 압축을 풀면 아래 경로와 같습니다. C:\WINDOWS.X64_193000_db_home oracle 설치 경로는 아래와 같이 지정했습니다. C:\oracle 이와 같이 경로를 지정하고 오라클 설치를 진행하면 listener의 경로는 아래와 같습니다. 구버전) C:\oracle\network\admin\listener.ora 19c) C:\WINDOWS.X64_193000

Naver Blog

[mssql] 현재 데이터베이스에 사용자 그룹 또는 역할이(가) 이미 있습니다.

MSSQL에서 DB 복원을 한 후 기존 DB에 있었던 사용자를 다시 추가하려고 하면 아래와 같은 오류가 발생합니다. 현재 데이터베이스에 사용자 그룹 또는 역할 <유저 이름> 이(가) 이미 있습니다 이 오류는 기존의 데이터베이스에 존재하는 유저의 이름과 새로 생성한 유저의 이름은 같지만 서로의 고유 번호인 SID가 서로 달라서 생기는 문제라고 합니다. 즉, 이름은 같지만 SID가 달라서 다른 유저로 인식하는데 새로 생성한 유저로 명령을 실행하려고 보니 기존에 똑같은 이름의 유저가 존재하여 위와 같은 오류를 발생시킵니다. 이를 해결하기 위한 쿼리는 아래와 같습니다. // MSDN에 따르면 sp_change_users_login은 언젠가 삭제될 예정이라고 합니다. EXEC sp_change_users_login 'update_one', '', '' 또는 ALTER USER TestUser WITH LOGIN = TestUser

Naver Blog

VirtualBox 오류(Call to WHvSetupPartition failed), VMWare 오류

요즘 Docker가 좋다고 해서 Docker를 설치했는데 그 이후 Virtualbox가 아래와 같은 에러를 표시하며 실행이 되지 않습니다. (찾아보니 Docker가 설치되면 VMware도 동작하지 않는다고 합니다.) 가상 머신 WIN 10 - 1의 세션을 열 수 없습니다. Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED). 결과 코드: E_FAIL (0x80004005) 구성 요소: ConsoleWrap 인터페이스: IConsole {872da645-4a9b-1727-bee2-5585105b9eed} 검색 결과 Docker에서는 아래와 같이 안내하고 있습니다. - Docker Desktop은 Hyper-V가 enable(활성화) 되어 있어야 함 - Hyper-V가 활성화 된 상태에서는 VirtualBox 사용 불가 https://docs.docker.com/do

Naver Blog

[Node.js] 파일 다운로드

먼저, 이번 예제를 실행하기 위해서는 Express가 설치되어 있어야 합니다. site https://expressjs.com/ko/ Express - Node.js 웹 애플리케이션 프레임워크 Black Lives Matter. Support the Equal Justice Initiative . Express 홈 시작하기 안내서 API 참조 고급 주제 자원 Express 4.17.1 Node.js 를 위한 빠르고 개방적인 간결한 웹 프레임워크 $ npm install express --save 웹 애플리케이션 Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크입니다. API 자유롭게 활용할 수 있는 수많은 HTTP 유틸리티 메소드 및 ... expressjs.com 설치 명령어 $ npm install express --save 예제 var express = require('express'); v

Naver Blog

[Oracle] 오라클 관리자(system, sys) 계정 비밀번호 찾기/변경

오라클 관리자 비밀번호를 잊어버렸을 경우 아래의 절차를 통해 변경할 수 있습니다. 1. cmd 명령어 프롬프트 창 2. sqlplus 실행 3. sys as sysdba 입력 후 비밀번호 입력하지 않고 그냥 enter 입력 - sys로 입력할 경우 ORA-28009: SYS(SYSDBA 또는 SYSOPER)로 접속해야 합니다. 에러 메시지 발생 4. sys 관리자 계정 비밀번호 변경 SQL> alter user sys identified by 1234;

Naver Blog

Tomcat] 캐시 여유 공간 부족

Tomcat 실행 시 xxx 위치한 리소스를 웹 애플리케이션 []을(를) 위한 캐시에 추가할 수 없습니다. 메시지가 발생하면 conf/context.xml에 아래 내용을 추가하면 됩니다. * <context></context> 태그 사이에 추가해야 함. <Resources cachingAllowed="true" cacheMaxSize="100000" />

Naver Blog

Maven build 할 때 build path에 포함됐는데도 package does not exist가 뜨는 경우

필자는 Oracle JDK로 build할때는 문제가 없었으나 Open JDK로 build path를 변경하니 이 오류가 발생했습니다. 프로젝트 환경에 따라 방법 1로 하면 되는 경우가 있고, 2로 해야 되는 경우가 있는데 차이는 아직 못찾았습니다. 방법 1. pom.xml에 추가 <properties> <webapp.lib>${basedir}/src/main/webapp/WEB-INF/lib</webapp.lib> </properties> <repositories> <dependency> <groupId>whatever</groupId> <artifactId>esapi</artifactId> <version>whatever</version> <scope>system</scope> <systemPath>${webapp.lib}/esapi-2.1.0.1.jar</systemPath> </dependency> <dependency> <groupId>whatever</groupId> <ar

Naver Blog

Tomcat 실행 시 &quot;둘 이상의 fragment들이 발견되었습니다. 이는 상대적 순서배열에서 불허됩니다.&quot; 에러 발생

에러 메시지 발생한 환경 spring boot에서 maven install 후 생긴 war 파일을 tomcat 9에 배포 에러 메시지 Caused by: java.lang.IllegalArgumentException: 이름이 [org_apache_tomcat_websocket]인, 둘 이상의 fragment들이 발견되었습니다. 이는 상대적 순서배열에서 불허됩니다. 상세 정보는 서블릿 스펙 8.2.2 2c 장을 참조하십시오. 절대적 순서배열을 사용하는 것을 고려해 보십시오. 해결방법 1. 프로젝트 내의 web.xml 파일의 <display-name> 바로 밑에 <absolute-ordering /> 추가 - 일반적인 Spring MVC 프로젝트는 가능하지만 spring boot는 web.xml이 없기 때문에 불가능 2. maven clean - 프로젝트에서 마우스 오른쪽 클릭하여 [Run As > Maven Clean] 후 [Run As > Maven Install]

Naver Blog

도커 설치 및 컨테이너 실행하기 on Windows

Docker 다운로드 1. 아래 URL에 접속합니다. https://docs.docker.com/docker-for-windows/install/ 2. Download from Docker Hub 버튼을 클릭합니다. 3. 오른쪽에 있는 Get Stable 버튼을 클릭합니다. 4. 저는 Windows container를 주로 사용할 것이기 때문에 "Use Windows ~"를 체크했습니다. (나중에 변경 가능) Hyper-V 설치 - Cannot enable Hyper-V service 오류가 발생할 경우 Hyper-V를 설치해야 합니다. 1. Windows 10에 Hyper-V 설치 - 관리자 권한으로 PowerShell 콘솔을 엽니다. - 다음 명령을 실행합니다. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All - 명령을 찾을 수 없다는 메시지가 나올 경우 PowerShell을 실행하고 있는지 확인

Naver Blog

도커 이미지 만들기

도커 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 용량이 큽니다. 새로운 이미지를 만들 경우 기존 이미지에 파일 하나 추가했다고 용량이 큰 파일을 다시 받는건 비효율적입니다. 도커는 이런 문제를 해결하기 위해 Layer라는 개념을 도입하고, 유니온 파일 시스템을 이용하여 여러 개의 레이어를 하나의 파일 시스템으로 사용할 수 있게 했습니다. 컨테이너를 생성할 때도 Layer 방식을 사용하여 기존의 이미지 레이어 위에 읽기/쓰기 레이어를 추가합니다. 이 방식을 통해 이미지 레이어는 변경 없이 컨테이너가 실행 중에 생성하는 파일이나 변경된 내용은 읽기/쓰기 레이어에 저장되기 때문에 여러개의 컨테이너를 생성해도 최소한의 용량만 사용합니다. Java 파일 이미지 만들기 1. image를 build할 폴더를 생성합니다. - 전 D:\ProgramData\Docker_build 로 생성했습니다. 2. Java 파일 생성 public class Test { public sta

Naver Blog

도커 로그 확인

도커(Docker)는 기본적으로 표준출력과 에러를 저장하여 이를 확인할 수 있는 명령어를 제공합니다. 컨테이너의 로그를 확인하기 위해서는 아래 명령어를 이용하여 내용을 확인 할 수 있습니다. docker log [컨테이너 이름] docker ps 명령어를 입력 했을 때 NAMES 항목이 이름인데, 컨테이터를 생성할 때 이름을 지정해 주지 않으면 아래 이미지와 같이 임의로 이름이 부여됩니다. docker logs 명령어에서 지원하는 옵션 옵션값 설명 -f 실시간으로 로그 출력 --tail string 마지막 한줄만 가져오기 --since string 특정 시간 이후의 log를 표시 --until string 특정시간 이전의 로그를 표시 --details logs에 제공된 추가 정보 표시 -t timestamp 표시 --timestamps timestamp 표시 도커 로그의 저장 위치 컨테이너 로그는 JSON 형태로 컨테이너ID 바로 아래 경로에 저장됩니다. [도커의 데이터 경로]/co

Naver Blog

Docker Container commands

컨테이너 생성 및 시작하기 아래 명령어를 이용하여 컨테이너를 생성할 수 있습니다. run 명령어를 사용하면 사용할 이미지가 저장되어있는지 확인하고 없다면 다운로드(pull)를 한 후, 컨테이너를 생성(create)하고 시작(start) 합니다. $ docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 자주 사용하는 옵션은 아래와 같습니다. 옵션 설명 -d detached mode 흔히 말하는 백그라운드 모드 -p 호스트와 컨테이너의 포트를 연결 (포워딩) -v 호스트와 컨테이너의 디렉토리를 연결 (마운트) -e 컨테이너 내에서 사용할 환경변수 설정 --name 컨테이너 이름 설정 -rm 프로세스 종료시 컨테이너 자동 제거 -it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 -link 컨테이너 연결 [컨테이너명:별칭] 상세 옵션은 공식 문서 참조 https://docs.docker.com/engine/reference/commandline/

Naver Blog

[windows] docker에 mysql 설치

* hyper-v가 지원되는 컴퓨터라면, windows에서도 linux container를 사용할 수 있습니다. mysql docker image 다운로드 - command 창에서 아래 내용 입력 docker pull mysql * 자세한 내용은 공식 페이지(https://hub.docker.com/_/mysql)참조 docker container 생성 docker run --name mysql1 -p 3333:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:8.0.17 run 컨테이너를 생성하고, 실행 -p 3333:3306 local의 3333 port와 docker의 3306(mysql 기본 port)를 연결 -e MYSQL_ROOT_PASSWORD=password mysql의 비밀번호를 "password"로 설정 -d background 모드로 실행 mysql:8.0.17 mysql8.0.17을 설치 여기까지 되었다면 기본으로 접속이 가능해야

Naver Blog

[유머] 교과서가 미쳤다... 피임방법 10가지나 소개.jpg

일단 부모부터 교육을 해야 하지 않을까...

Naver Blog

이클립스 이전 버전 다운로드(eclipse old version)

https://wiki.eclipse.org/Older_Versions_Of_Eclipse Older Versions Of Eclipse - Eclipsepedia Jump to: navigation , search Navigation Main Page Community portal Current events Recent changes Random page Help Toolbox Page information Permanent link Printable version Special pages Related changes What links here Page Discussion View source History Older Versions Of Eclipse Need help with older... wiki.eclipse.org

Naver Blog

[유머] 재평가된 호날두 근황

https://tongtong-humor1st.tistory.com/21 [유머] 돌아온 우리형 근황 대한민국을 지킨 구국의 영웅 [유머] 돌아온 우리형 근황 결승골 어시스트 [유머] 돌아온 우리형 근황 명예한국인으로 tongtong-humor1st.tistory.com

Naver Blog

[유머] 황희찬 의문의 1패

https://tongtong-humor1st.tistory.com/22 [유머] 포르투갈전 결승골 주인공 황의찬 의문의 1패 tongtong-humor1st.tistory.com

Naver Blog

[공유] 검단 신도시 왕릉뷰 아파트 1억원대 전세 등장!!

https://realestate.daum.net/news/detail/all/20221205061105083 [르포] 검단 왕릉뷰 아파트 1억원대 전세 등장… 함정은? [편집자주]속절없는 전셋값 폭락에 '세입자 모시기' 전쟁이 벌어지고 있다. 불과 2년 전 체결했던 고액의 보증금을 지키기는커녕 폭락한 금액만큼 전세금 중 적잖은 금액을 세입자에 반납할 수밖에 없는 상황이 됐다. 보증금 일부를 돌려주고도 모자라 매달 일정액을 세입자에 줘야 하는 역월세까지 발생하고 있다. 신규 입주단지들도 상황은 마찬가지다. 몇 달 새 전세 시세가 30~40% 이상 폭락했고 그마저도 세입자를 구하기도 힘들다. 3~4년 전 분양 당시만 해도 고액의 전세 보증금을 통해 손쉬운 갭투자를 노렸던 집주인들은 입주 시점에 날벼락... realestate.daum.net

Naver Blog

아산 뚱보아저씨 수제돈까스 방문 후기 - 내돈내산

안녕하세요. 이번에는 아산에 있는 "뚱보아저씨 수제돈까스"에 다녀왔어요. 뚱보아저씨 수제돈가스 충청남도 아산시 번영로234번길 30 아산에 단풍구경에 가는 김에 뭘 먹을지 검색을 하다가 아래 사진과 같이 "음식이 맛있어요" 후기가 많은 뚱보아저씨 수제돈까스에 방문하게 되었어요! 아산 뚱보아저씨 수제돈까스 전 치즈돈까스와 비빔국수를 주문했어요 "양이 많아요"라는 후기가 많았던 만큼 정말 양이 엄청나게 많았어요. 먼저, 비빔국수는 평범했어요. 쫄면같은 느낌도 났어요. 아산 뚱보아저씨 수제돈까스 방문 후기 아산 뚱보아저씨 수제돈까스 방문 후기 그 다음은 치즈돈까스 입니다. 치즈돈까스는 정말 최악이었어요. 돈까스는 크기는 큰데 고기가 너무 얇아서 고기보다 돈까스 튀김이 더 두꺼워서 별로였어요. 그리고 돈까스 소스, 치즈, 돈까스가 다 따로 놀아서 무슨 맛인지도 모르겠고 소스맛은 안느껴지고 치즈맛만 나는데 그 치즈도 맛이 없고.... 그냥 총체적 난국이었어요. 살면서 먹어본 돈까스 중에 제일

Naver Blog

2022년 10월 온 가족 코로나 감염 후기 - 확진 2일차까지

저희 집은 30대 부부와 6개월 아기 이렇게 세 가족이 살고 있어요. 저희 집은 아기가 먼저 코로나 걸리고 아기에게 저희 부부가 옮았는데요. 아기 데리고 마트밖에 갔다 온 적이 없는데 요즘 실외에서 사람들이 마스크를 안 쓰고 다니다 보니 그 사람들한테 감염되었다고 생각하고 있어요. 2022-10-27 목요일 저녁 5시 반쯤에 아기가 열이 난다고 해서 급하게 퇴근했어요. 퇴근하고 와서 열을 재보니 38.3도. #자가검사키트 로 검사를 해보니 단호박 두 줄이 나와서 다른 브랜드의 #자가키트 로 검사해 보니 역시 두 줄이었어요. 최대 39도까지 열이 올랐는데, 아기는 고열에 시달리면 뇌가 열에 녹는다고 해서 계속 젖은 손수건으로 계속 전신을 닦아줬어요. 해열제도 4시간 단위로 먹여줬어요. 아기가 아파서 그런지 밤새 잠을 못 자서 같이 밤새우며 계속 닦아줬어요 2022-10-28 금요일 아기 확진 1일차 아내 0일차 본인 0일차 아침이 되자마자 소아과에 가서 #전문가키트 로 검사해서 확진

Naver Blog

2022년 10월 온 가족 코로나 감염 후기

안녕하세요 오늘은 지난 글에 이어서 코로나 확진 후기입니다. https://blog.naver.com/yjhyjh5369/222922798821 2022년 10월 온 가족 코로나 감염 후기 - 확진 2일차까지 저희 집은 30대 부부와 6개월 아기 이렇게 세 가족이 살고 있어요. 저희 집은 아기가 먼저 코로나 걸리고 ... blog.naver.com 2022-10-31 월요일 아기 확진 4일차 부부 확진 3일차 아기는 회복이 빠르다는 소리가 있던데, 그래서 그런지 확실히 잔기침을 하는 것 말고는 컨디션이 정말 좋아 보였어요. 아프다가 안 아파서 그런지 기분이 더 좋아 보였어요. 아내는 여전히 후각 미각이 100% 상실된 상태였고, 목이 아파서 목소리도 여전히 나오지 않는 상태였어요. 저는 코막힘, 콧물이 있고 노란 가래가 너무 심해서 감당이 안 될 정도가 되었어요. 기존의 약이 안 듣는 것 같아서 코로나 환자도 진료 가능한 병원을 찾아서 다시 약을 지어왔어요. 2022-11-01 화요

Naver Blog

[공유] &quot;항체치료제 안 먹혀&quot;…오미크론 BQ, 美 우세종 된다

https://n.news.naver.com/article/215/0001065195 "항체치료제 안 먹혀"…오미크론 BQ, 美 우세종 된다 예방용 항체치료제가 듣지 않아 면역 회피력이 높은 코로나19 오미크론의 새 하위 변이 BQ.1과 BQ.1.1이 조만간 미국에서 우세종이 될 전망이다. 11일(현지시간) 미 질병통제예방센터(CDC) 자료에 따르면 현재 n.news.naver.com 저도 이번에 오미크론에 걸렸는데요. 새로운 오미크론 변이가 미국에서 우세종이 된다고 합니다. 델타, 감마, 오미크론 등 계속 이름이 변하더니 어느순간부터 오미크론 프로 맥스 뭐 이런것도 아니고 오미크론 내에서 계속 변이가 일어나네요. 모두들 코로나 조심하세요~

Naver Blog

[공유] 트위치 한국에서 다시보기 서비스 종료

http://news.heraldcorp.com/view.php?ud=20221111000581 “다음달부터 한국인만 못본다” 비난 쇄도, 무슨 일? “화질도 떨어뜨리더니 이제 ‘다시보기’까지 막는다” 세계 최대 게임 스트리밍 플랫폼 트위치(Twitch)가 또 다시 한국만 겨냥한 일방적인 서비스 축소 방침을 내놔 이용자들이 들끓고 있다. 앞서 한국에서만 라이브 방송 화질을 초고화질(1080p)에서 720p로 떨어뜨려 원성을 샀던 트위치의 두 번째 조치다. 트위치는 9일(현지시간) 본사 홈페이지에 한국 이용자들에게 중요한 업데이트라며 ‘VOD 콘텐츠에 관한 Twitch 코... news.heraldcorp.com 세계 최대 게임 스트리밍 플랫폼 트위치(Twitch)가 또 다시 한국만 겨냥한 일방적인 서비스 축소 방침을 내놔 이용자들이 이용자들이 분노하고 있습니다. 앞서 한국에서만 라이브 방송 화질을 초고화질(1080p)에서 720p로 떨어뜨려 원성을 샀던 트위치의 두 번째 조치입니다.

Naver Blog

[공유] 사우디 빈 살만이 온다…‘710조원’ 네옴시티 프로젝트 본격 가동

생활정보 [공유] 사우디 빈 살만이 온다…‘710조원’ 네옴시티 프로젝트 본격 가동 노루궁뎅이 2022. 11. 15. 22:01 이웃추가 본문 기타 기능 역대급 프로젝트인 미래도시인 네옴시티. The line. 본격 가동을 시작합니다. 출처by 한경비즈니스 | 네이버 뉴스 사우디 빈 살만이 온다…‘710조원’ 네옴시티 프로젝트 본격 가동 한미글로벌(56%), 코오롱글로벌(55.6%), 희림(51%) 등 사우디아라비아 네옴시티 관련 기업 주가가 한 달 새 50% 넘게 상승했다. 네옴시티는 서울의 44배 크기 도시를 짓기 위해 총 710조원 규모가 투입 n.news.naver.com 스크랩된 글은 재스크랩이 불가능합니다.

1 2 3 4 5 6 7 8 9 10