분류 전체보기 358

Mac Flutter 설치 및 개발 환경 세팅

Mac Flutter 설치 및 개발 환경 세팅 Flutter SDK 다운로드 및 설정Flutter doctorAndroid studio 다운로드 및 설정Flutter 프로젝트 생성 및 Android Emulator 실행Xcode 설치 및 CocoaPods 설치 해당 포스팅은 macOS 환경에서 Flutter를 통한 개발을 하기 위해 플러터 설치 및 개발 환경 세팅을 하는 과정을 정리한 내용으로 위 순서에 따라 진행됩니다. 1. Flutter SDK 다운로드 및 설정1-1. SDK 다운로드https://docs.flutter.dev/release/archive?tab=macos(SDK 다운로드 링크) 먼저 위 경로를 통해 'Flutter SDK'를 다운로드합니다.이때 '..

Programming/Flutter 2024.04.25

(Oracle) MERGE INTO 구문 사용 방법 및 예시

오라클 MERGE INTO 구문 사용 방법 및 예시 정리 시스템 상의 여러 로직에서는 데이터 처리 시 다음과 같이 데이터를 처리해야 하는 경우가 다수 있습니다. 1. 해당 데이터가 있는지 확인 'SELECT' 2-1. 데이터가 있는 경우 'UPDATE' 2-2. 데이터가 없는 경우 'INSERT' 이럴 때 오라클의 'MERGE INTO' 구문을 사용하면 조건에 따라 테이블에 데이터를 삽입하거나 업데이트하는 것을 한 번에 처리할 수 있는데요. 이어지는 내용을 통해 'MERGE INTO 구문의 사용 방법과 예시'에 대해서 살펴보겠습니다. MERGE INTO 구문 사용 방법 MERGE INTO [TABLE / VIEW] -- UPDATE 또는 INSERT 할 대상 테이블 또는 뷰 USING [TABLE / V..

MyBatis SQL Injection 발생하는 상황 및 방어 방법

MyBatis SQL Injection 발생하는 상황 및 ${ }, #{ } 바인딩 차이 1.SQL Injection 이란? 데이터베이스(Database)와 연동된 웹사이트 및 웹 애플리케이션에서 공격자가 입력 폼 또는 URL을 통해 SQL 쿼리문을 전송하여 데이터베이스를 열람 또는 조작하는 해킹 기법을 말합니다. SQL Injection 공격의 종류에는 크게 '인증 우회(Auth Bypass)', '데이터 노출(Data Disclisure)', '원격명령 실행(Remote Command Excute)' 세 가지가 있습니다. 해당 공격들은 클라이언트로부터 입력되는 데이터의 유효성을 제대로 필터링하지 않아 발생하며, 쉬운 공격 난이도에 비해 상당한 피해를 줄 수 있기 때문에 SQL Injection을 예방..

Programming/Spring 2024.04.10

JavaScript 이벤트 전파 개념과 이벤트 전파 막는 방법

JavaScript 이벤트 전파 개념 및 막는 방법 (click 이벤트 전파 문제) outer-div inner-div 다음 예시와 같이 'outer-div' 안에 'inner-div'라는 요소가 있고, 각 요소에 click 이벤트가 있는 상황에서 'inner-div'를 한 번 클릭하였을 때, 이미지 결과처럼 'click_inner_div' 함수 동작 후 'click_outer_div' 함수도 동작되는 상황을 발견하게 되었는데요. 관련된 내용을 찾아보니 JavaScript에서는 '이벤트 전파(Bubbling, Capturing)'라는 개념이 있었으며, 해당 개념 및 이벤트 전파를 막는 방법에 대해 정리하게 되었습니다. Event 전파 (Capturing, Bubbling) javascript에서 이벤트 ..

spring + oracle(ojdbc) 연결 방법 정리

Spring + Oracle(OJDBC) 연결 방법 정리 최근 eclipse + spring 환경에서 작업을 많이 하게 되면서 spring 프로젝트에서 ojdbc를 통해 oracle 데이터베이스에 연결하는 방법을 정리해 보았습니다. 앞서 JDBC와 OJDBC에 대해 간략하게 먼저 'JDBC'는 Java Database Connectivity의 약자로 자바 언어를 이용하여 데이터베이스에 접속하고 SQL 쿼리를 실행할 수 있게 해주는 자바 API입니다. JDBC는 데이터베이스와의 통신을 위한 표준화된 방법을 제공하기 때문에 DBMS(MySQL, Oracle, MSSQL 등)의 종류에 관계없이 JDBC 인터페이스를 이용하여 데이터베이스 작업을 처리할 수 있습니다. 그리고 각 데이터베이스 벤더는 아래와 같이 자..

Programming/Spring 2024.03.30

mybatis selectKey 사용 방법 및 주의할 점 (selectKey 다중 컬럼)

mybatis selectKey 사용 방법 및 주의할 점 mybatis에서는 insert, update, delete 쿼리에 대한 결과로 해당 쿼리에 영향을 받은 행의 수를 반환합니다. 그중에서 insert의 경우 성공 시 int 타입의 1이라는 결과를 반환하며, 실패 시 에러가 발생하게 되는데요. (update, delete의 경우 쿼리에 영향을 받은 행의 수가 여러 행일 경우 그 값만큼 결과를 반환하는 반면, insert의 경우 여러 건에 대해 쿼리가 성공하더라도 1을 반환한다는 특징이 있습니다.) 해당 포스팅에서는 selectKey 요소를 통해 mybatis에서 insert 결과로 해당 데이터의 key 값을 받아오는 방법 및 selectKey 사용법, 그리고 주의할 점에 대해서 정리하였습니다. My..

Programming/Spring 2024.03.20

ObjectMapper는 Bean으로 등록해서 사용하자

ObjectMapper는 Bean으로 등록해서 사용하자 'ObjectMapper'는 Java 객체와 JSON 데이터 간의 변환으로 인해 Java 기반 프로젝트에서 많이 사용되는 클래스인데요. ObjectMapper는 생성 비용 등의 이유로 사용될 때마다 new 연산자로 생성하는 것보다 bean으로 등록하여 사용하는 것이 좋다고 생각하는데, 그 생각의 근거를 스스로 정리하기 위해 글을 작성했습니다. (생성 비용이나 메모리 등, 미세한 차이일 수 있지만 불필요한 자원의 낭비를 막을 수 있는 부분이라고 생각합니다.) ObjectMapper란? ObjectMapper는 JSON 데이터를 Java 객체로 역직렬화 하거나, 반대로 Java 객체를 JSON 데이터로 직렬화할 때 사용되는 Jackson 라이브러리의 클..

Programming/Spring 2024.03.12

윈도우 서버에서 jar 파일 백그라운드 실행하기

윈도우 서버에서 jar 파일 백그라운드 실행하기(+ 배치 파일 cmd 닫는 방법) 해당 포스팅은 윈도우 서버에서 jar 파일을 백그라운드로 실행하는 동작을 배치 파일(.bat)으로 만들어 사용해 보며 정리한 내용입니다. java 명령어로 실행할 경우 윈도우 서버에서 계속 동작해야 하는 Java 프로그램을 이미지와 같이 'java -jar [jar 파일명].jar' 명령어를 통해 실행하는 경우, 실행 이후 cmd(명령 프롬프트) 창을 닫으면 실행한 프로그램도 함께 종료되어 버리는데요. 이런 경우 리눅스 서버에서는 'nohup' 명령어를 통해 jar 파일을 백그라운드로 실행시킬 수 있는 반면, 윈도우 서버에서는 'javaw' 명령어를 통해 프로그램을 백그라운드로 실행시킬 수 있습니다. javaw 명령어로 실..

Programming/Java 2024.03.09

(티스토리) 오디세이 스킨, 글 제목 배경 제거하는 방법

(tistory) 오디세이 Odyssey 스킨, 글 제목 배경 제거하는 방법 최근 구글 웹페이지 속도 측정 사이트인 'PageSpeed Insights'를 통해 티스토리 블로그의 성능을 측정해 보았는데, 글 제목 부분의 배경 이미지로 인해 웹 페이지 로딩 과정에서 성능이 저하된다는 것을 확인하였습니다. (First Contentful Paint, Largest Contentful Paint 문제) 때문에 스킨 수정을 통해 배경을 제거해 보게 되었고, 해당 포스팅에서는 오디세이 스킨 편집을 통해 '글 제목 부분의 배경을 제거하는 방법'을 정리하였습니다. 글 제목 부분 배경 제거 전, 후 비교 먼저 스킨 수정을 통해 글 제목 부분의 배경을 제거하기 전과 후의 차이입니다. 제목이 있던 영역 자체는 최대한 유지..

IT Info 2024.03.05

jar 실행 시 log4j2.xml 파일 못 찾는 경우 (ERROR StatusLogger No Log4j 2 configuration file found.)

jar 실행 시 /resources/log4j2.xml 파일을 못 찾고 오류가 발생하는 경우 스프링 프로젝트에서 로깅 구현체로 log4j2를 사용하는 과정에서 '/src/main/resources/' 경로에 'log4j2.xml' 파일이 있어 이클립스 환경에서는 로깅이 정상적으로 동작했으나, 'Runnable Jar file'을 통해 jar 파일로 만들어 동작시켰을 때 resources 하위에 있는 Log4j2.xml 파일을 찾지 못하고 위와 같은 오류가 발생하였습니다. ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user pr..

Programming/Error 2024.03.02