목록java (10)
DevTzu
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cJBnCy/btscfzqfPTa/b3oVFKzFZdMIsmgkJKQ5o0/img.png)
365일 운영되는 서버 시스템에서 로그는 굉장히 중요하다. 그렇지만 로그가 중요하다고 생각되어 무분별하게 남기는 것은 나쁜 습관이다. 대표적인 예로 습관적으로 예외 상황이 발생하면 ERROR 레벨로 로그를 남기는 것이다. 정상적이지 않은 모든 상황에서 전부 ERROR 레벨로 처리하게 되면 불필요하게 많은 알람들로 인해 정작 봐야할 심각한 에러 로그들도 놓칠 수 있다. 효율적인 모니터링을 위해 적정 수준에서 로그 레벨을 구분하는것이 중요하다. Spring Boot 로그 레벨 종류 TRACE 가장 상세한 로그 레벨이며, 애플리케이션의 실행 과정에서 발생하는 모든 이벤트를 로깅합니다. DEBUG 애플리케이션의 디버깅을 위한 로그 레벨로, TRACE보다는 자세하지 않지만 상세한 정보를 로깅 개발 혹은 테스트 단..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cnGxjZ/btrQjndr0q4/ZYkelYFSViQz4l6BfVNIs1/img.jpg)
네이버 클라우드 플랫폼 서버 초기 설정에 관련된 내용이다. AWS, GCP, Azure 등 유사 클라우드 서비스에서 리눅스 인스턴스를 할당 받아도 설정 방법은 동일하다. 네이버 클라우드 플랫폼 콘솔에서 서버 생성시 다양한 서버 이미지를 제공한다. CentOS, Ubuntu, Windows 등 선택할 수 있다. Java기반 Spring Boot 서버를 띄울 예정이고 DB도 필요하다. 그래서 DB설치 버전인 MySQL on Linux로 서버를 생성하였다. MySQL 버전으로 서버를 생성하였으니 MySQL 설치는 안해도 된다. DBMS 계정정보 설정을 위해 MySQL 계정을 생성해주었다. 1. MySQL 계정 설정 /sbin/service mysqld start (최초)mysql -uroot ALTER USE..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dh0dtS/btrQa4E5ruG/snaavCREkXhjFLmxOHCKaK/img.png)
해외 쪽 기업 서비스 운영 중 신규 요건에 대해서 신규 개발을 진행한 적이 있다. 이때 해외담당자가 api라고 제공해준것이 SOAP WSDL 이였다. 처음 보는 그리고 사용해본 적 없는 서비스였다. WSDL이란 WSDL(Web Services Description Language의 약자)은 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술된다. 웹 서비스의 구체적 내용이 기술되어 있어 서비스 제공 장소, 서비스 메시지 포맷, 프로토콜 등이 기술된다. https://ko.wikipedia.org/wiki/WSDL WSDL - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 해외쪽 서비스 담당자가 나에게 보내준 것은 단지 url 이였다. ex..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/s5fFE/btrPAIQ3n76/h0oLbQGbBPYFTUYmxAkWQk/img.png)
한글로 된 문자열에서 초성 찾기 예를 들어, '홍길동'의 첫 자인 '홍'의 초성을 찾는 코드 샘플이다. '홍'의 초성은 'ㅎ' 이다. 아래의 메서드는 '홍길동'과 같은 문자열을 파라미터로 받아 그 결괏값으로 'ㅎ' 문자를 반환하는 메서드이다. - java code String getConsonants(String text) { String[] cons = { "ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ", "ㅂ", "ㅃ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅉ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ" }; if(text.length() > 0) { char chName = text.charAt(0); if(chName >= 0xAC00) { int uniVal = chName - ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kYBtr/btrOFdX9eun/seB8ycwO96vRkK4xTyOVrK/img.png)
람다식이란? 람다식, 또는 람다 함수는 프로그래밍 언어에서 사용되는 개념으로 익명 함수(匿名函數, Anonymous functions)를 지칭하는 용어이다. 실무적으로는 코드를 간결하게 만들고, 지연 연산으로 성능을 높이고, 반복 관련 코드의 불필요한 부분들을 제거할 수 있으므로 중요하다. 람다식은 주로 고차 함수에 인자(argument)로 전달되거나 고차 함수가 돌려주는 결과값으로 쓰인다. 필요한 적재적소에 람다식을 투입하는 프로그래머는 효율과 결과 모두를 가져오는 훌륭한 프로그래머라고 볼 수 있다. 장단점 - 장점 1. 코드의 간결성 - 불필요한 반복되는 코드 삭제가 가능하며 복잡한 식을 단순하게 표현할 수 있다. 2. 지연연산 수행 - 지연연상을 수행 함으로써 불필요한 연산을 최소화 할 수 있다. ..
기존 Spring Boot 웹 서버에 새로운 업무 추가로 신규 테이블을 만들었다. 신규 테이블을 만들고 Service, Mapper, SQL문을 작성 후 실행하였는데.. 오류 발생... OTL 바로 로그 확인! java.sql.SQLSyntaxErrorException: Table 'TableName' doesn't exist 이런 로그를 발견 시 당황하지 말고 SQL문으로 돌아가자. 신규로 만든 테이블명과 SQL문에 작성한 테이블 명의 대소문자를 확인하자. 문제는 테이블 이름 대소문자에 있었다. 테이블명 수정 후 다시 실행해보니 작동이 잘 된다. 오늘 디버그 노트는 끝. ※참고 비슷한 유형의 로그 메시지도 있다. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx..
java.net.UnknownHostException [원인] 웹 서버의 DNS 설정이 되어있지 않아서 발생되는 문제입니다. 이 문제는 localhost 환경에서는 발생되지 않지만, 직접 설치된 서버 혹은 외부서버에서 가동 시에 문제가 될 수 있습니다. 이 문제는 SNMP 통신 혹은 PING 등의 Network 관련 작업을 수행할 경우, 해당 웹 서버에서 외부로의 이동이 요구될 때 발생될 수 있는 문제입니다. [해결방법] 각 웹 서버의 설정에 맞게 DNS 설정을 합니다. [1] 서버가 IBM AIX 일 경우 telnet 으로 해당 서버에 접속 cd /etc/resolv.conf 파일을 vi 편집기로 수정하여 해당 ISP 의 네임서버와 IP 주소를 등록합니다. (ex : 127.0.0.1 localhost..
객체와 클래스 객체(Object) 상태와 행동으로 구분할 수 있는 것 공통된 데이터 구조와 기능을 추출하여 클래스를 작성 클래스(Class) 객체를 생성하는 틀로 사용되는 클래스 공통된 상태와 행동을 갖고 있어야 한다 멤버변수와 멤버메서드로 구성 객체 생성 생성한 객체는 그 멤버들의 주소값을 가지고 있다 그 주소값을 통해서 그 멤버들을 참조할수 있다 객체 생성시 메모리를 할당 받음 객체의 내용이 다를수 밖에 없는 이유 ┗> new를 사용하여 새로는 객체가 생성되어질때 그 클래스의 멤버변수의 개수만큼 메모리가 생성된다 Account obj = new Account(); ┗> 레퍼런스 변수, 참조변수 생성자(constructor) 새롭게 객체를 생성할때 객체를 초기화 하기위해 자동으로 호출된다 인자값의 데이..
논리연산자 & : 두 값이 모두 true 면 true, 그렇지 않으면 false 이다 | : 두 값이 모두 false 면 false, 그렇지 않으면 true 이다 ^ : 하나가 true, 하나가 false 면 true, 그렇지 않으면 false 이다 ! : 이 값이 true이면 false, false이면 true 이다 최적화된 AND/DR 연산자 && : || : 삼항 연산자(조건연산자) 조건식 ? 식1 : 식2; 조건식이 true이면 식1을 계산하고 그렇지 않으면 식2를 계산한다 반복문(루프문) while : 초기식, 조건식, 증감식으로 구성 int i=0; // 초기식 while(조건식) { // 조건식 반복내용 i++; // 증감식 } do while 조건식을 검사하기 전에 무조건 실행 부분을 한 ..
주석처리 //, /* */, ctrl + / 자바 클래스는 메서드와 변수로 이루어져있음 메인 메서드는 그 프로그램에 단 하나이고, 프로그램의 시작점 1. Java 실행구조, 메서드 구현(인자, 리턴형) public static void main(String[] agrs) { public - 접근 제어자 static - 객체를 생성하지 않고도, static 메서드를 사용하여 호출하여 사용할수 있음 객체를 생성없이 main을 참조할 수 있게 하기 위함 void - retrun 타입 정의 메소드 옆 괄호()에 들어있는 것을 인자, 파라미터, 데이터 타입 정의 String[] args 의 뜻은 문자열로된 배열만 사용하겠다는 표시 System.out.println("Hello World!"); System 클래스..