IT
-
초기화 블럭 (initialization block)IT/JAVA 2023. 1. 29. 22:38
개발하면서 익숙함에 속아 기본을 잊어버리곤 한다. 중요하게 생각하지 않았던 초기화 블럭에 대해서 정리한다. 초기화 블럭 1. 클래스 초기화 블럭 - 클래스 변수의 복잡한 초기화에 사용된다. - 인스턴스 초기화 블럭 앞에 단순히 static을 덧붙이기만 하면 된다. 2. 인스턴스 초기화 블럭 - 인스턴스변수의 복잡한 초기화에 사용된다. - 단순히 크래스 내에 블럭 {} 만들고 그 안에 코드를 작성하기만 하면 된다. ** 초기화 블럭 내에는 메서드 내에서와 같이 조건문, 반복문, 예외처리구문 등 자유롭게 사용하 수 있으므로, 초기화 작업이 복잡하여 명시적 초기화만으로 부족한 경우 초기화 블럭을 사용한다. class Block { static { System.out.println("static {}"); //..
-
Spring Solr Client 구현 (Solrj)IT/Spring 2023. 1. 3. 15:44
참고 문서: Spring Data Solr: https://docs.spring.io/spring-data/solr/docs/4.3.x/reference/html/#reference Apache Solr: https://solr.apache.org/guide/8_0/client-apis.html 1. gradle dependencies 추가 [ spring-boot-starter-data-solr 2.4.13 버전 설치 시 사용되는 Dependencies ] - spring-data-solr: 4.3.15 (https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-solr/2.4.13) - solr-solrj:..
-
MSSQL - 프로시저 내에 JSON Parameter 값을 Insert 하기IT/Database 2021. 9. 14. 15:33
MSSQL 프로시저에 백엔드에서 보내는 JSON 파라미터를 이용하여 For문을 수행하여 Count 만큼 Insert 하는 내용을 작성하려고 합니다. 제가 사용하고 있는 Backend 언어는 Node.js입니다. 1. Node.js 1) MSSQL 프로시저 호출 2) 프로시저에 JSON 과 Count 파라미터 보내기 → JSON.stringfy() 이용해서 String으로 만들어서 보낼 것. function test(json) { return new Promise(function (resolve, reject) { var connection = new Connection(dbconfig); connection.on('connect', function () { var request = new Request(..
-
janus.js - video Room : 자신의 bitrate를 변경하는 방법IT/javascript 2021. 9. 11. 15:11
안녕하세요. 오늘도 개발하면서 기억하고 싶은 것들과 신기했던 것들에 대한 내용을 정리하려고 합니다. 저는 janus.js를 사용하여 영상통화 웹을 개발하고 있습니다. * janus.js란? https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kpoint01&logNo=221525261567 해당 블로그에 설명이 잘 되어 있으니 참고 바랍니다. 제가 사용하고 있는 라이브러리는 janus.js의 videoRoom를 사용하고 있습니다. janus.js 라이브러리를 사용하여 웹에 대한 소스를 구현 중, 자신의 비트레이트를 변경하는 방법에 대하여 찾아보았습니다. 저는 frontEnd 언어를 Vue.js를 사용하였습니다. janus 객체를 생성하..
-
batchScript - MySQL Query 사용하기IT/batchScript 2020. 8. 25. 14:21
batch Script를 활용하여 DB를 접속하여 Query를 이용해 배치파일을 만들었습니다. batch Script에서도 가능하다는 것을 오늘 처음 알았네요. 1. 사용할 Batch 파일 만들기 사용하기 전에 mysql 환경 변수가 등록되어야 합니다. 등록되어 있지 않으면, mysql > bin 폴더 안으로 이동하여 실행을 해야합니다. 아래와 같이 입력하여 "script.sql"을 사용할 수 있습니다. @echo off rem Mysql MemoList 조회 (( rem == 주석 )) mysql --host=localhost --user=사용자 DB 계정 --password=사용자 DB 패스워드 --database=DB스키마 < script.sql *script.sql 결과 값을 파일로 내보내기 아래..
-
Vue.js - Vue Router (개념 및 구현)IT/Vue.js 2020. 8. 3. 10:22
Vue.js는 그 자체로는 단순한 뷰 계층 라이브러리입니다. 그러므로 여러 페이지로 구성되고 복잡한 사용자 인터랙션을 갖는 애플리케이션 등을 개발할 경우에는 Vue.js만으로는 구현이 어려울 때가 있습니다. 공식 플러그인인 Vue Router를 사용하면 단일 페이지 애플리케이션(SPA)을 비롯한 URL 이동이 필요한 동작을 간단히 구현할 수 있습니다. 1. Vue Router를 이용한 SPA SPA란 최초에 HTML 페이지 하나를 로드한 다음, 그 이후로 사용자 인터랙션에 따라 Ajax로 정보를 받아오면서 동적으로 페이지를 업데이트하는 웹 어플리케이션을 말합니다. 일반적으로 웹 애플리케이션은 페이지 이동 시에 대상 URL을 서버에 요청해 전체 페이지에 해당하는 HTML 콘텐츠를 받아옵니다. 반면, SPA..
-
Vue.js - Vuex Actions 및 폴더구조화IT/Vue.js 2020. 7. 30. 13:31
1. Actions 이란? Mutations에는 순차적인 로직들만 선언하고 Actions 에는 비 순차적 또는 비동기 처리 로직들을 선언합니다. 그렇다면 왜 처리 로직의 성격에 따라 Mutations 과 Actions로 나눠 등록해야 할까요? Mutations의 역할 자체가 State 관리에 주안점을 두고 있습니다. 상태관리 자체가 한 데이터에 대해 여러 개의 컴포넌트가 관여하는 것을 효율적으로 관리하기 위함인데 Mutations에 비동기 처리 로직들이 포함되면 같은 값에 대해 여러 개의 컴포넌트에서 변경을 요청했을 때, 그 변경 순서 파악이 어렵기 때문입니다. 이러한 문제를 방지하기 위해 비동기 처리 로직은 Actions에 동기 처리로직은 Mutations에 나눠 구현합니다. 따라서, setTimeou..
-
Vue.js - Vuex getters, mutationsIT/Vue.js 2020. 7. 28. 15:20
1. Getter 란? 중앙 데이터 관리식 구조에서 발생하는 문제점 중 하나는 각 컴포넌트에서 Vuex의 데이터를 접근할 때 중복된 코드를 반복호출 하게 되는 것입니다. 예를들면 아래와 같은 코드가 있습니다. 여러 컴포넌트에서 같은 로직을 비효율적으로 중복 사용하고 있습니다. 이 때, Vuex의 데이터 (state) 변경을 각 컴포넌트에서 수행하는 것이 아니라, Vuex에서 수행하도록 하고 각 컴포넌트에서 수행 로직을 호출하면, 코드 가독성도 올라가고 성능에서도 이점이 생깁니다. 2. Getters 등록 상위 컴포넌트 : TestVueComponent.vue 하위 컴포넌트 : ChildVuex.vue getters를 Vuex에 추가합니다. export default new Vuex.Store({ // ...