Main
-
MySQL
MySQL 설치와 외부 접속 그리고 Group By
개요토이프로젝트를 진행하면서 회사 점심시간에도 조금씩 해보자하였다. 환경집은 맥미니 회사에서는 개인 맥북을 사용맥미니에 DB 세팅 회사에서 맥북으로 DB 연결홈서버? 홈 DB서버? 진행설치맥미니가 꺼질일이 없으니 MySQL 설치-- 작성일 2024-11-04일자 기준 9.0.1 버전 설치 확인 완료brew updatebrew install mysql MySQL 실행# 두 명령어중 마음에 드는 것으로 선택# 필자는 brew 선택brew services start mysqlmysql.server start 정상적인 실행이 완료된 것을 확인 설정 진행mysql_secure_installationWould you like to setup VALIDATE PASSWORD component? -> 비밀번호 복잡스럽..
-
Toy Project
토이프로젝트 시작
함께하고싶으신분Designer, FE, BE, Cloud 등 자신의 분야를 활용하고 싶으신 분연락 부탁드립니다.아래에 기입된 FE 개발 언어, 프레임워크 및 사용할 클라우드는 변경 또한 가능합니다.https://open.kakao.com/o/sG6RRyPg 같이 토이 프로젝트 하실분 open.kakao.com솔직하게 포트폴리오 작성을 위한 프로젝트 작업을 해보자 하기에 이렇게 글을 씁니다.TOPIC - 비공개TeamMe And IBackend - 주 개발 분야Java17(Amazon Corretto 17 (aarch64)Spring boot 3.3.5Gradle 8.10.2JPAMyBatisFrontendNext 15.0.2React 18.3.1shadcn : 2024-11-02 기준 latestData..
-
ETC
ubuntu amazon corretto 제거 (yum 미사용)
dpkg-query -W -f='${binary:Package}\n' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e '^java-common' | xargs sudo apt-get -y removesudo apt-get -y autoremovedpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purgesudo rm -rf /usr/lib/jvm/*sudo apt-get autoremove --purgesudo apt-get autoclean
-
boot
JPA 사용 시 암호화 복호화 적용하기 : ColumnTransformer
실무에서 DB 테이블에서 일부 컬럼에 암호화된 정보가 저장되고, 화면에 리턴 해줄때 복호화되어 뿌려줘야하는 로직을 담당하게 되었습니다. 기존 Mybatis를 사용할 때는 MySQL의 Function을 이용하여 아래와 같이 이용하였습니다.INSERT INTO test_table(plain_text, encrypt_text)VALUES ("abc", encrypt_function("abc");SELECT plain_text, decrypt_function(encrypt_text)FROM test_table; JPA에서도 동일한 결과를 기대하였지만 dirty checking이 발생하여 암호화된 데이터를 불러온 후 복호화를 하게 되면 복호화된 데이터가 저장되게 되었고 다음 로직부터 오류가 발생하여 이를 해결하기..
-
GitHub
GitHub Pages + Jekyll(지킬)을 이용하여 페이지 만들기
예를들어 자신의 정보와 참여한 프로젝트를 정리하고자 함에 웹사이트를 제작하는 방법은 여러가지가 있습니다.대표적으로 호스팅 서버를 이용하여 무료로 혹은 비용을 지불하는 것입니다.비용 아까워 무료로 사용하자니 제한사항이 많은데 GitHub Pages는 코드 저장소와 호스팅이 모두 제한된 자원안에서 무료로 사용이 가능하기에 이 글을 작성합니다.가장 먼저 레포지토리를 생성합니다.유의할 점은 레포지토리의 이름을 아래와 같이 자신의 '계정명.github.io'로 해주시는 것입니다. Jekyll은 Ruby라는 언어를 바탕으로하므로 Ruby를 설치하여 줍니다.터미널을 열고 아래의 명령어를 입력하여 줍니다.brew install chruby ruby-install#원하는 버전 선택ruby-install ruby 3.3...
-
GitHub
Github Action 으로 AWS Lambda 자동 배포하기(3)
Github Action 으로 AWS Lambda 자동 배포하기(2)Github Action 으로 AWS Lambda function 자동 배포하기회사 업무로인해 CTO님이 Node로 작성하신 AWS Lambda 함수를 수정하는 역할을 맡게 되었다.(난 java spring이긴한데....) 이후 수정내역을 CTO님께 보고 드리xddsr123.tistory.com 이전 작성한 Github Action을 조금더 간결하게 동작하도록 수정하였다.다만 완벽하게 모든 프로젝트에 동일하게 적용할 수준이 아니며, 관리 포인트의 감소가 다이나믹하게 이루지지 않았다. 우선 기존의 하나의 yml 파일에서 dev, main 브랜치에 PUSH 이벤트를 감지하고 있었는데 이를 쪼개어 두개의 파일로 나누었다.즉 .github/wo..
-
AWS
AWS Lambda Layer(계층)
Github Action 으로 AWS Lambda 자동 배포하기(3)Github Action 으로 AWS Lambda 자동 배포하기(2)Github Action 으로 AWS Lambda function 자동 배포하기회사 업무로인해 CTO님이 Node로 작성하신 AWS Lambda 함수를 수정하는 역할을 맡게 되었다.(난 java spring이긴한xddsr123.tistory.com Layer는 추가 코드 또는 데이터를 포함하는 .zip 파일 아카이브입니다. 계층에는 일반적으로 라이브러리 종속 항목, 사용자 지정 런타임 또는 구성 파일이 포함된다. Lambda를 사용하다보면 외부 라이브러리를 import하거나,여러 Lambda에서 import한 라이브러리들이 동일하게 사용중일 때 Layer를 사용한다면 ..
-
boot
Spring boot log 파일을 AWS S3에 자동으로 업로드 시키기
spring boot 2.7.3 버전에서 작성된 코드입니다. logback class, core 1.2.11 버전의 라이브러리입니다. 또한 아래 옵션으로 로그를 보존한다는 가정하에 글을 작성합니다. - Appender : RollingFileAppender - RollingPolicy : SizeAndTimeBasedRollingPolicy AWS S3 라이브러리 : com.amazonaws:aws-java-sdk-s3:1.12.290 아래는 Import 코드 입니다. import ch.qos.logback.core.Context; import ch.qos.logback.core.CoreConstants; import ch.qos.logback.core.FileAppender; import ch.qos...
-
ETC
맥OS 파인더에 휴지통을 추가하기
이번에 윈도우 노트북에서 맥 미니로 집 개발 환경을 바꾸면서 여러가지 세팅을 하다가 편리한점이 많았지만 불편한점이 많아 이것저것 알아보며 가장 간단하고 편한 방법을 정리해보려고 합니다. 다른 블로그들의 내용처럼 Automator를 사용하여 추가하거나 도구 막대 사용자화에서 삭제 버튼을 추가하는 방식이 아닌 다른 방식임을 알려드립니다. 먼저 터미널을 실행시켜 줍니다. 못 찾으시겠다면 Command + SpaceBar로 Spotlight에서 "터미널"이라고 검색해주고 엔터를 누르시면 됩니다. 이후 아래 명령어를 복사하여 붙여넣기 후 실행시켜 주세요. cd && ln -s .Trash Trash 위 명령어를 실행하고 나서 파인더에서 사용자명 폴더(=홈 폴더 = 집모양 아이콘 폴더)로 이동해줍니다. 그러면 아래..
-
ETC
사내 담당 업무 기록 2
2023.08.17 - [ETC] - 사내 담당 업무 기록 1 사내 담당 업무 기록 1 Project Infra 글로벌 프로젝트 Backend Sprong boot - AWS EC2 Frontend Node + Next.js - AWS EC2 Database AWS RDS - Aurora MySQL Serverless Excel Uplaod - Node Image Thumbnail - Node RDS Alarm - Python 내부 기능 Excel Upload UI에서 엑셀 파일 xddsr123.tistory.com RDS Alarm - 수정 사내에서 사용하는 Slack의 API 중 chat.postMessage 또는 WebHook은 초당 1번의 메세지 송신이 가능하며 특정 상황은 예외가 있다고 한다. ..
-
ETC
사내 담당 업무 기록 1
Project Infra 글로벌 프로젝트 Backend Sprong boot - AWS EC2 Frontend Node + Next.js - AWS EC2 Database AWS RDS - Aurora MySQL Serverless Excel Uplaod - Node Image Thumbnail - Node RDS Alarm - Python 내부 기능 Excel Upload UI에서 엑셀 파일 업로드 Backend 자바가 S3에 저장 AWS Lambda에 등록된 S3 Put Object 트리거 발생 람다 코드가 S3에 저장된 파일 내부 데이터 검증 및 변환 검증 실패 또는 내부적으로 다른 검증에 실패한 경우 원인에 대한 내용을 업로드한 파일에 기입하여 사용자에게 다운로드 검증 성공 시 임시 테이블에 저장..
-
AWS
AWS CLI 설정하기
설치 - Linux # 설치 # --64-bit curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # --ARM curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install # 설치확인 aws --version - Mac # 설치 curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target / # 설치확인 aws --versi..
-
AWS
AWS CloudWatch 로컬 터미널에서 확인하기
AWS CLI가 설치되어 있고 region, aws_access_key_id, aws_secret_access_key를 먼저 정의해주시기 바랍니다. AWS CLI AWS CLI 설정하기 설치 Linux # 설치 # --64-bit curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # --ARM curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install # 설치확 xddsr123.tistory.com GitHub - jorgebastida/awslogs: ..
-
GitHub
Github Action 으로 AWS Lambda 자동 배포하기
회사 업무로인해 CTO님이 Node로 작성하신 AWS Lambda 함수를 수정하는 역할을 맡게 되었다.(난 java spring이긴한데....) 이후 수정내역을 CTO님께 보고 드리면서 AWS Lambda 함수를 자동으로 배포하는 작업을 추가로 할당받게 되었다. 처음에는 AWS CodeDeploy를 사용하려고 했지만 도저히 길이 보이지 않아 Github Action을 사용하는 방법을 사용하기로 하였다. 아래는 Github Action Workflow에 대한 yml 파일이다. name: deploy lambda function on: push: branches: - deploy jobs: deploy_source: name: deploy lambda by push runs-on: ubuntu-latest ..
-
MySQL
Mysql AES ENCRYPT
먼저 사용하는 형식 확인한다. SELECT @@block_encryption_mode; 형식을 변경하고 싶다면 아래 명령어를 입력한다 SET block_encryption_mode = 'aes-128-ecb'; SET block_encryption_mode = 'aes-256-cbc'; 이외에도 다양한 방식이 존재하며 원하는 방식을 선택하면 된다. (aes-keylen-mode) keylen : 128, 192, 256 mode : OpenSSL : ECB, CBC, CFB1, CFB8, CFB128, OFB yaSSL : ECB, CBC AES 128 ECB - 암호화 SELECT TO_BASE64(AES_ENCRYPT('text', 'enc_key')); - 복호화 SELECT CONVERT(AES_..