전체 글 200

gradle import시 버전오류 해결방법

새로 spring initializer를 사용하여 gradle 프로젝트를 만들면 버전문제로 초기 gradle 프로젝트 build가 실패하는 경우가 있었다. 해결책: 그럴때는 프로젝트 루트디렉터리에서 gradle/wrapper/gradle-wrapper.properties 파일을 열어 gradle 버전을 변경해주고 다시 build해주면된다. distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase..

war방식의 단점

프로젝트를 배포하기위해서는 톰캣같은 WAS(웹 어플리케이션 서버)를 설치하고 여기서 설정하고 배포를 해야한다. 이렇게 서버와 빌드파일이 분리되어있는데 별도로 설치를 해야하고 설정하는게 복잡하다. 톰캣같은경우 버전이 변경되면 다시 설치를해야해서 복잡하다. 그러다보니 Spring Boot에서는 톰캣을 내장 라이브러리로 제공해서 내장 톰캣을 지원하게되었다.

Back End/Spring 2024.03.16

Electron 개요

자바스크립트로 데스크톱 어플리케이션 만드는것 노드(Node.js) 기반 자바스크립트, HTML, CSS만을 사용하여 데스크톱 애플리케이션을 만드는 오픈소스 프레임워크 낮은 러닝커브 크로미움기반 프로그램. 보이는건 데스크톱처럼 보이지만 내부적으로는 웹언어로 되어있다. visual studio code를 키고 help-toggle developer tools를 클릭하면 일렉트론으로 만들어진 visual code의 코드를 볼수있다. 장점 1. 크로스플랫폼 맥, 윈도우, 리눅스가 호환된다. 세곳에서 빌드되고 동작된다. 자바의 장점인 크로스플랫폼, JVM과 같다. 같은코드로 다른플랫폼에서 작동이 가능한다. 2. 웹언어로 개발이 가능하다. 단순히 웹언어로 native한 프로그램을 만들수있다. 3. 데스크톱 앱으로서..

컴퓨터 과학 2024.03.15

SSO 작업중 도메인과 ip주소 CORS에러

SSO(Single Sign On) 작업을 완료하고 개발단에서는 제대로 쿠키값이 로그인 정보가 담겨서 넘어오는데 운영단에는 계속해서 쿠키값에 로그인 정보가 담겨서 넘어가질 않았는데. CORS policy 에러가 나오면서 접근이 denied 됬다고 나왔다. 여러부분을 확인해보다 확인된것이 개발단에는 로그인이후 도메인주소로 redirect해주고있었고 운영단에는 ip주소로 redirect하게 설정이 되어있었다. 즉슨 CORS에서는 IP와 도메인 주소를 구분한다는것을 알게되어 IP주소가 아닌 등록된 도메인주소로 redirect하게 변경해주니 정상적으로 운영단에서도 쿠키값에 로그인 정보를 담아왔다.

MSSQL MERGE문 <-> Postgresql WITH문

두 구문은 비슷하다. 해당하는 자료가없으면 INSERT문을 실행하고 있으면 UPDATE문을 사용하는데 구문이 조금 다르다. # mssql MERGE INTO table_a AS a USING ( select #{A} as B ,#{B} as B ) AS b ON (a.A = b.A) and (a.B = b.B) WHEN MATCHED THEN UPDATE SET a.C = #{C} ,a.D = CURRENT_TIMESTAMP ,a.E = #{E} WHEN NOT MATCHED THEN INSERT( A ,F )VALUES( #{A} ,#{F} ); mssql은 이런식으로 mybatis에서 가져온 데이터를 USING문에서 변수에 넣어준다. 그리고 이 b라고 alias를 선언해주는데 ON절에서 이 조건에 맞..

DB 2024.01.16

코딩테스트에서 문자열을 한번에 입력을 하는 방법 (백준 11382)

보통 Scanner sc = new Scanner(System.in)를 썼는데 77 77 7777 이런식으로 공백을 기준으로 입력을하는 문제가 나왔다. 아래와같이 BufferedReader 클래스로 입력을 받아주고 StringTokenizer로 공백을 기준으로 문자열로 뽑아주는 작업을 해주면된다. 백준 11382번 문제 예제 BufferedReader br = new BufferedReader(new InputStreamReader(System.in); StringTokenizer st = new StringTokenizer(br.readLine()); int A = Integer.parseInt(st.nextToken()); int B = Integer.parseInt(st.nextToken()); i..