반응형

전체 글 424

JPA 예약어로 인한 구문 오류 해결 방법 (check the manual that corresponds to your MariaDB server version for the right syntax to use near 'order …’)

jpa 예약어로 인한 구문 오류 발생 시 해결하는 방법 jpa를 사용한 데이터 조회 작업 중 아래와 같은 'SQLSyntaxErrorException'이 발생했습니다. 해당 구문은 원래 정상적으로 동작하던 구문으로, 프로세스상의 필요에 의해 기존에 다른 이름으로 되어 있던 테이블 명만 'order'로 바꿨기 때문에 구문 상의 문제는 아닐 것이라고 생각했는데요. java.sql.SQLSyntaxErrorException: (conn=14730) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'order order..

Programming/Error 2023.04.19

AWS Summit 참석 전, AWS란 무엇인가?

AWS Summit Seoul 2023 참석 전, 사전 지식 공부 1. AWS란? 아마존 웹 서비스(Amazon Web Services, AWS)는 아마존 닷컴에서 개발한 클라우드 컴퓨팅 플랫폼으로 전 세계 클라우드 컴퓨팅 시장에서 1위의 점유율을 차지하고 있는데요. AWS는 컴퓨팅, 스토리지, 데이터베이스와 같은 인프라 기술에서 부터 기계 학습 및 인공 지능, 데이터 레이크 및 분석, 사물 인터넷 등 200개 이상의 기능에 대한 서비스를 제공하고 있습니다. * 기계 학습(machine learning)은 인공지능의 하위 범주로, 컴퓨터 시스템이 패턴과 추론에 의존하여 명시적 지시 없이 학습하도록 지원하는 알고리즘의 연구를 말합니다. AWS에서 제공하는 모든 서비스는 API 중심으로 설계되어 있기 때문에..

Programming/AWS 2023.04.18

반도체 및 디스플레이 소재 관련주, 램테크놀러지

반도체 및 디스플레이 화학소재 전문 기업, 램테크놀러지(171010) 관심 종목 '램테크놀러지'에 대한 내용 정리입니다. 2001년 10월 설립된 램테크놀러지는 반도체용 식각액, 박리액 및 기타 IT 분야 화학소재 등, 전방 산업별 핵심 공정에 사용되는 화학소재 제조 사업을 주력으로 하고 있는 기업으로 SK하이닉스, 삼성SDI, 매그나칩 등의 고객사에 제품을 공급하고 있습니다. 2023년 4월 14일 종가 6,550원 기준 시가총액은 906억 원이며, 총 상장 주식 수는 13,836,057주로 주요 주주로는 길준잉(회장) 외 10인이 전체 주식의 약 34%를 가지고 있습니다. 램테크놀러지 주가 램테크놀러지의 주가는 2021년 11월 불화수소 관련 가짜 뉴스 이슈로 인해 상승한 이후 약 1년 반 가까이 하..

Finance 2023.04.16

무료 ssl 인증서 적용하는 방법(Let's Encrypt)

certbot을 통해 Let's Encrypt에서 제공하는 무료 ssl 인증서 적용하는 방법 ssl 인증서는 클라이언트와 서버 간의 통신을 제3자가 보증해 주는 전자화된 문서인데요. ssl 인증서를 사용함으로써 통신 내용이 공격자에게 노출되는 것을 막을 수 있으며, 통신 내용의 악의적인 변경을 방지할 수 있습니다. 또한 클라이언트는 접속하려는 서버가 신뢰할 수 있는 서버인지를 해당 인증서를 통해 판단할 수 있게 됩니다. /* SSL(Secure Socket Layer)과 TLS(Transport Layer Security Protocol)는 같은 의미인데요. SSL이 표준화기구 IETF의 관리로 바뀌면서 TLS라는 이름으로 바뀌게 되었으며, 아직까지 TLS라는 이름보다 SSL이라는 명칭이 더 많이 사용되..

Programming/Web 2023.04.15

AP시스템(265520), 반도체 디스플레이 장비에서 2차 전지 장비까지

AP시스템, 반도체 디스플레이 장비에서 2차 전지 장비까지 사업 다각화 관심종목 'AP시스템'에 대한 내용 정리입니다. AP시스템은 AMOLED/LCD 등 디스플레이 장비, 반도체 장비, 레이저 응용 장비 등의 연구 개발 및 제조 사업을 하는 회사이며, 2017년 3월 APS홀딩스(구 AP시스템)에서 인적분할의 방법으로 신설되었습니다. 2023년 4월 11일 종가 21,950원 기준 시가총액은 3,354억 원으로 상장 주식 수는 15,281,421주 입니다. 주요 주주로는 25%(3,820,369주)의 지분을 가진 APS홀딩스, 자사주 1.71%(261,287주) 등이 있습니다. AP시스템 주가 AP시스템의 차트를 살펴보면 2017년 APS홀딩스에서 분할된 이후 오랜 기간 하락 및 횡보를 거쳐 현재 주가..

Finance 2023.04.12

운영체제의 기초 (CPU 스케줄링, 메모리 관리, 디스크 스케줄링)

운영체제의 기초(Foundation of Operating System) 비전공자로 개발 업무를 하며 CS(Computer Science) 전공지식에 대해 공부가 필요하다는 생각을 항상 가지고 있었는데요. KOCW(kocw.net)을 통해 대학교 강좌를 무료로 접할 수 있다는 소식을 알게 되었고, 해당 포스팅은 KOCW에서 제공되는 이화여자대학교 반효경 교수님의 운영체제 강의를 참고하여 정리한 내용입니다. 운영체제란? '운영체제'는 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층으로, 모든 컴퓨터 시스템의 필수적인 부분입니다. 운영체제는 다른 소프트웨어들과는 다르게 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행함으로써 컴퓨터 시스템을 편리하..

MySQL 날짜, 시간 더하고 빼기 및 타임존 변경(DATE_ADD, DATE_SUB, CONVERT_TZ)

MySQL 날짜, 시간 더하고 빼기 및 타임존 변경 mysql에서 날짜 또는 시간을 더하고 빼는 함수인 'DATA_ADD', 'DATA_SUB'와 타임존을 변경할 때 사용되는 'CONVERT_TZ' 함수에 대한 사용법을 정리한 내용입니다. 0. time zone 확인 SELECT @@time_zone, @@system_time_zone; 먼저 위 쿼리를 통해 mysql에 설정된 time_zone 정보를 조회하였습니다. time_zone이 SYSTEM으로 설정되어 있다는 것은 별도의 타임존이 설정되어 있지 않다는 것이며, 시스템의 타임존을 사용하겠다는 것인데요. 해당 테스트 환경에 설정된 mysql의 time zone은 KST(Korea Standard Time)이라는 것을 알 수 있습니다. 1. DATA..

Programming/MySQL 2023.04.07

Spring Security + OAuth2 + JWT 소셜 인증 구현(google, kakao, naver)

스프링 부트 security + oauth2 + jwt 소셜 인증 구현 코드 문득 security, oauth2를 사용한 소셜 인증을 제대로 구현해 본 적이 없다는 생각이 들어 구현하며 정리한 내용입니다. 소셜 인증의 경우 많은 애플리케이션에서 사용되는 기능이기 때문에 내용을 잘 파악해 두면 좋다고 생각되는데요. 기능을 구현하며 oauth에 대한 개념 및 oauth2-client의 내부적인 동작 원리에 대한 부분도 궁금하여 포스팅으로 정리해 보았으며, 하나의 포스팅에 모든 내용을 담기는 사실상 어렵기 때문에 아래 포스팅을 참고하시어 해당 코드를 보면 조금 더 이해하기 쉬울 것으로 생각됩니다. (oauth2에 대한 내용으로 대부분 구성되어 있으며 jwt에 대한 내용도 생략되었습니다. jwt에 관련 내용도 ..

스프링 부트 멀티 모듈 프로젝트 생성(gradle)

Spring Boot Multi-Module Project(Gradle) 지난번 spring boot multi-module project 생성하기(maven)에 이어 이번에는 'gradle'을 사용한 멀티 모듈 프로젝트 생성 방법에 대해서 살펴보겠습니다. multi module project를 적용하는 가장 큰 이유는 하나로 운영하던 서비스가 클라이언트 서비스와 운영 시스템 등, 여러 개로 나뉘는 경우가 발생했을 때 각각의 프로그램에 있는 domain의 동일성을 보장하기 위한 것인데요. 멀티 모듈 프로젝트는 무엇인지, 멀티 모듈 프로젝트를 적용하는 이유와 장점에 대한 내용은 아래 포스팅을 참고해 주시면 좋을 것 같습니다. (maven 빌드툴로 구성된 프로젝트에서 multi module project를 ..

Java Enum 타입 데이터베이스 저장 형식은 뭐가 좋을까? (enum, varchar, tinyint)

Java Enum Type 데이터 DB 저장 형식 (enum, varchar, tinyint) 해당 내용은 데이터베이스 설계 과정에서 Java Enum 타입의 데이터는 어떤 형식으로 저장되는 것이 좋은가에 대해 고민하며 정리한 내용입니다. 실제로는 'varchar'와 'tinyint' 사이에서 고민했으나, mysql의 경우에는 'enum' 타입도 존재하기 때문에 mysql enum 타입에 대해서도 함께 비교하였습니다. enum을 함께 비교하기는 하였지만 mysql의 enum 타입은 여러 이유로 인해 많이 쓰이지는 않는데요. 아래 내용에서는 mysql enum 타입의 특징과 쓰이지 않는 이유에 대해 간단하게 살펴보고 이어서 enum, varchar, tinyint 각각의 타입에 대해 실제 데이터를 넣고 조..

리눅스 서버 시간 확인 및 설정 방법 (linux timedatectl 명령어)

linux timedatectl 명령어를 통한 리눅스 서버 시간 확인 및 설정 리눅스 서버에서 시스템 시간 및 해당 설정을 확인하고 변경해야 할 일이 있어 찾아보며 정리한 내용입니다. linux에서는 timedatectl 명령을 사용하여 현재 시간, 날짜 및 시간대(timezone) 설정을 확인 및 변경할 수 있는데요. 아래 내용을 통해 사용되는 명령어들에 대해서 살펴보겠습니다. (timedatectl 명령어는 CentOS 7부터 사용할 수 있습니다.) 1. 서버 시간 및 설정 확인 # timedatectl # timedatectl status timedatectl 또는 timedatectl status 명령어를 통해 시스템에 설정된 시간 및 시간 설정을 확인할 수 있습니다. 여기서 Local time의..

Programming/Linux 2023.03.30

Spring Boot OAuth2-Client 내부적인 동작 과정

스프링 부트 OAuth2-Client 내부적인 동작 과정 스프링 부트 2.x 버전으로 올라오며 oauth를 연동하는 방법이 크게 변경되었는데요. 아래 내용은 spring-boot-starter-oauth2-client 라이브러리를 적용하여 소셜 로그인(google, naver, kakao)을 구현하는 과정에서 내부적인 동작 과정에 대한 궁금증으로 찾아본 내용입니다. /* 기존(1.5 버전)에서는 'org.springframework.security.oauth:spring-security-oauth2' 라이브러리를 사용하였다면, 2.x 버전부터는 'org.springframework.boot:spring-boot-starter-oauth2-client' 라이브러리를 사용합니다. */ OAuth 2.0의 경..

OAuth, OAuth2 개념과 동작 방식 정리

OAuth, OAuth2 개념과 동작 방식 정리 Spring Security + OAuth2를 통한 소셜 로그인을 구현하던 중, oauth의 개념과 이론적인 동작 방식에 대해서 자세하게 알고 싶어 정리한 내용입니다. 1. OAuth, OAuth2.0 이란? 위키백과에 따르면 'OAuth(Open Authorization)'는 인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로써 사용되는, 접근 위임을 위한 개방형 표준인데요. 사용자의 아이디와 비밀번호 없이 접근 권한을 위임받을 수 있다는 것은, 로그인 및 개인정보 관리 책임을 'Third-Party Application(google, kakao, n..

Programming/Web 2023.03.22

Spring Event, @TransactionalEventListener 사용하기

@TransactionalEventListener 사용하기 및 propagation.REQUIRES_NEW spring framework 4.2부터 스프링 이벤트의 사용이 간편해졌는데요. 지난 포스팅에서 spring event를 사용하는 이유와 @EventListener를 통한 기본적인 이벤트 처리 방법에 대해서 살펴본 것에 이어, 이번 포스팅에서는 더 향상된 기능인 @TransactionalEventListener에 대해서 살펴볼 예정입니다. 2022.12.23 - [Programming/Spring Boot] - spring 이벤트 사용하기(event publisher, event listener) (이전 포스팅 내용으로 spring event에 대한 기본적인 처리 방법이 궁금하시다면 참고하시면 좋을..

(Spring Security + JWT) Refresh Token을 통한 토큰 재발급에 대해서

Spring Security + JWT / Refresh Token을 통한 토큰 재발급 방식 spring security + jwt를 사용한 인증 방식을 구현할 때, 토큰 재발급은 어떤 방식으로 이루어지는 게 좋을지에 대해 생각해 보며 정리한 내용입니다. * 토큰 재발급의 경우 다양한 방식으로 구현될 수 있으며, 해당 포스팅에서 구현된 방식은 여러 방식 중 하나라는 점 참고 부탁드립니다. Refresh Token을 사용하는 이유 access token은 발급된 이후, 서버에 저장되지 않고 토큰 자체로 검정을 하며 사용자 권한을 인증한다는 stateless(무상태)라는 특징이 있는데요. 때문에 access token이 탈취되면 토큰이 만료되기 전까지 토큰을 가진 사람은 누구나 권한 인증이 가능해진다는 문제..

반응형