전체 글 141

카카오, 네이버 OpenAPI 앱 키 발급받는 방법

카카오나 네이버에서 제공하는 OpenAPI를 사용하려면, 먼저 개발자 사이트에서 앱을 만들고 앱 키를 발급받아야 한다. 계정이 없다면 회원가입을 해야 한다. 지금부터 카카오, 네이버의 앱 키를 발급받는 방법을 포스팅하려고 한다. 카카오 앱 키 발급받기 카카오 개발자 사이트에서 로그인 한 뒤 메뉴에서 [내 애플리케이션]을 클릭한 뒤 [애플리케이션 추가하기] 버튼을 클릭한다. 애플리케이션 추가하는 팝업창이 뜨는데, 앱 이름과 사업자명을 자유롭게 입력한 후 저장 버튼을 클릭한다. 앱 이름: 서비스 이름 사업자명: 서비스의 사업자 이름 생성된 애플리케이션이 목록이 보인다. 방금 생성한 애플리케이션을 클릭하자. 아래와 같이 발급된 앱 키를 확인할 수 있다. 앱 키는 4종류가 존재한다. 앱을 생성하면 플랫폼별로 앱..

절차지향과 객체지향에 관한 고찰

누군가 내게 "자바의 특징이 무엇인가?" 라고 묻는다면 반사적으로 객체지향 언어라고 말할 것이다. 그만큼 '자바는 객체지향 언어'라는 인식이 강하게 박혔기 때문이다. 그러나 남에게 핵심을 간추려 설명할 만큼 제대로 알고 있지는 못했다. 스파게티코드님이 절차지향과 객체지향을 비교하여 깔끔하게 설명한 글을 토대로 포스팅 하였다. 설명이 꽤 길지만 읽을 만한 가치가 있는 글이라고 생각한다. 절차지향 이 말에 한 번쯤 의구심을 품어본 적이 없는가? 위 사진은 절차지향과 객체지향의 차이점을 설명하는 단순화된 사례이다. 이를 바탕으로 실제로 자판기 프로그램을 구현한다고 생각해보자.​ 먼저 절차지향 방식을 보면, 차근차근 순서대로 따라가는 전형적인 절차식 프로그램임에 틀림이 없다. 그렇다면 객체지향 방식을 살펴보자...

Backend/Java 2022.10.09

톰캣 실행시, 이미 사용중인 8080 포트 에러(Port 8080 is already in use) 해결

문제 발생 톰캣을 실행시키는데 다음과 같은 에러가 발생한다. org.springframework.boot.web.server.PortInUseException: Port 8080 is already in use 말 그대로 이미 8080 포트가 사용 중이라고 뜨는 것인데, 이럴 경우에는 현재 8080 포트로 동작중인 프로세스를 강제로 종료시키면 된다. 해결 방법 윈도우+R를 입력하여 cmd 창을 열어보자. netstat 라는 명령어를 입력하면 현재 TCP/IP 네트워크 연결 상태를 확인할 수 있다. 이제 좀 더 세부적으로 확인하기 위해 Ctrl+C를 눌러 되돌아간 후 netstat -ano 명령어를 입력하여 어떤 프로세스가 8080 포트를 사용 중인지 확인해 보자. a : 모든 연결 및 수신 대기 포트를 ..

Oracle offset (오라클 페이징 처리)

이번 프로젝트에서 SQL 튜닝 가이드를 받아 쿼리를 수정하면서 offset 키워드를 알게 되어 포스팅한다. 오라클은 12c 버전부터 offset과 limit가 추가되었다. Oracle 12c 이전 Oracle 12c 이전에는 ROW_NUM을 사용하여 페이징 처리를 했다. 단점은 쿼리를 view로 감싸므로 쿼리가 복잡해진다. SELECT * FROM ( SELECT a.*, ROWNUM AS "ROWNUM" FROM ( 사용자 정의 쿼리 QUERY ) a WHERE ROWNUM = start_number Oracle 12c 이후 Oracle 12c 이후부터는 행 제한(row limitng)을 이용하여 간단하게 페이징 처리할 수 있다. 오라클의 지저분한 페이징 처리를 간결하게 할 수 있는 장점이 있다. of..

Computer Science/DB 2022.10.05

2022년 2회차 정보처리기사 실기 합격 및 정리요약본 공유

2022년 9월, 정보처리기사 2회 차 실기를 합격했다. 필기에 이어 실기도 턱걸이로 붙어버리기.... 작고 소중한 내 60점🙈💗 공부 방법 2022년도 1회 차 필기에 붙고난 뒤 곧바로 1회 차 실기를 볼까 생각했지만, 도저히 바로 공부할 자신이 없어서 1회 차 실기는 건너뛰었다. 열심히 공부했으니 그만큼 쉬어줘야 된다고 생각했고, 그렇게 고삐 풀린 망아지처럼 놀고 애써 외면하다가 실기 2주 전쯤부터 본격적으로 공부를 한 것 같다...(하기 싫어 죽을뻔한 몸뚱아리와, 그를 이겨낸 정신력에 박수...) 나는 필기 때와 마찬가지로, 실기에도 서적에 돈을 쓰지 않았다. 그러다 보니 예상하지 못한 문제가 발생했는데, 필기는 문제은행만 열심히 풀면 됐지만 실기는 어떻게 공부를 해야 할지 감이 잡히질 않았다. 감..

IT Note/자격증 2022.09.02

문자열은 불변한다(String is Immutable)

자바에서 문자열을 만들 때 아래처럼 2가지 방법을 이용할 수 있다. String str1 = "개발새발"; // ""을 이용하여 문자열 생성 (String literal) String str2 = new String("개발새발"); // new 연산자로 문자열 생성 (String Object) 위의 출력결과는 동일하며, 사람들은 흔히 첫번째 방법으로 많이 쓴다. 그런데 메모리에 저장되는 공간은 엄연히 다르다는 것을 알고 있는가? 첫번째 방식인 String literal으로 생성하면 문자열은 힙영역의 String Pool에 저장되어 문자열이 동일하면 저장소를 공유할 수 있다. 반면 두번째 방식인 new 연산자로 생성하면 문자열은 힙영역에 저장되어 문자열이 같더라도 저장소 공유가 불가능하다. 이 차이점을 기..

Backend/Java 2022.08.14

Lombok(롬복) 설치 및 활용법

Lombok(롬복)이란 Lombok(롬복)은 소스가 깔끔한 것을 선호하는 사람이 좋아할 법한 라이브러리이다. getter, setter와 같이 반복되는 형태의 코드를 줄여주는 역할을 한다. 예를 들어 @Getter, @Setter와 같이 어노테이션(Annotation)으로 선언만 하면 그 기능을 함축적으로 갖고 있게 된다. 1. Lombok 라이브러리 다운받기 Lombok 사이트에 들어가서 jar 파일을 직접 설치하자. 2022년 5월 기준으로 최신 버전은 1.18.24이다. 파일의 다운로드가 완료되었으면, 이클립스 또는 STS가 설치된 경로에 lombok.jar를 붙여넣은 후 해당 파일을 실행한다. 그러면 인스톨러 창이 실행이 될 것이다. 아래와 같이 내 PC에서 IDE를 찾을 수 없다는 경고창이 나오..

배치파일로 여러 프로그램 실행하기

배치파일(.bat)을 이용해서 여러가지 프로그램을 동시에 실행시키고 싶을 때가 있다. 예를 들어 배치를 실행하면 크롬, 엣지, 엑셀을 한번에 열리게끔 하고 싶다. 그리기 위해선 먼저 실행할 프로그램의 경로를 알면 되는데, 해당 아이콘을 마우스 우클릭후 '속성'을 누르면 대상 경로를 확인할 수 있다. 내가 실행하고 싶은 크롬, 엣지, 엑셀의 경로를 순서대로 적어놨다. C:\Program Files\Google\Chrome\Application\chrome.exe C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE 이제 메모장을 열어 아래..

이클립스 에러 해결 Could not initialize class com.thoughtworks. xstream.converters.collections.PropertiesConverter

문제 발생 이클립스에서 STS 플러그인 설치후 'Spring Legacy Project'로 프로젝트를 새로 생성하려고 했다. 프로젝트 정보를 기입후 'Next'를 누르니 아래의 에러가 발생했다. An error has occurred. See error log for more details. Could not initialize class com.thoughtworks.xstream.converters.collections.PropertiesConverter 개발 환경은 JDK 8, 이클립스 2021.9 버전, STS 3 이다. 해결 방법 스프링 버전과 JDK 버전간의 호환 문제로 간주되어 JDK 11로 버전업하였고, 이에 맞게 이클립스에서 [Window] > [Properties[ > [Java] > ..