전체 글
🔹 요약 C++에서 struct와 class는 모두 사용자 데이터 타입을 정의할 때 사용됩니다. 둘 다 데이터 멤버와 함수를 가질 수 있습니다. 그러나 일반적으로 struct는 데이터의 집합체로 사용되며, class는 객체 지향 프로그래밍에서 객체의 정의를 위해 사용됩니다. struct와 class의 주요 차이점은 기본 접근 제어 수준입니다. struct는 기본적으로 public으로 정의되며, class는 기본적으로 private으로 정의됩니다. 이것은 struct는 멤버 변수 및 함수가 외부에서 쉽게 액세스 될 수 있지만, class는 멤버 변수 및 함수에 대한 직접적인 액세스를 제한합니다. 또한, class는 상속, 다형성 및 캡슐화와 같은 객체 지향 개념을 더 잘 지원합니다. 이러한 이유로, 클래스..
Batch 서버는 Job(실행 단위 정도..?)을 관리할 뿐 엄밀하게 스케줄러는 아닙니다. 하지만 보통 스케줄러와 함께 정기적으로 로직을 실행한다는 의미로 이 글에서 표현했습니다. 🔹 라이브러리 선정 Batch를 구현하기 위해서는 외부에서 정기적으로 트리거를 발생시키거나 django 내부에서 정기적으로 로직을 실행해야 합니다. 리눅스 환경에서 django 자체적으로 os 지식 없이 batch를 구현하는 라이브러리를 선정했습니다. 후보 1. django-crontab 글쓰는 당시 django batch를 검색했을때 가장 많이 나왔습니다. cron은 유닉스 계열 운영 체제의 시간 기반 잡 스케줄러입니다. 최신글이 계속 나오는것으로 보아 아직까지 호환되는 라이브러리 같습니다. 하지만, 2016년에 마지막 업데..
🔹 EmailJS 설명 EmailJS는 클라이언트 측 기술만 사용하여 이메일을 보낼 수 있도록 도와주는 JavaScript 라이브러리입니다. 서버가 필요하지 않기 때문에 지원되는 이메일 서비스 (gmail 등) 중 하나에 연결하고 사용하기만 하면 됩니다. 무료 플랜은 한 달에 200건의 메일을 사용할 수 있습니다. 🔹 EmailJS 가입 및 설정 1. 사이트 접속 회원가입 https://www.emailjs.com/ Send email directly from your code | EmailJS No server side code required. Add static or dynamic attachments, dynamic parameters, captcha code and more. Start with..
🔹 왜 하게 되었을까 Vue.js는 기본적으로 SPA(Single Page Application)입니다. 그래서 아무 생각 없이 검색 엔진에 색인 없이 등록하면 되겠다는 생각으로 구글 콘솔에 올렸는데, 아래와 같은 메일을 받았습니다. SPA에 어떻게 404가 나오지? 라는 생각을 하며 Soft 404를 찾아보니, 200 status를 주지만 내용이 없어 마치 404 같은 사이트를 감지하는 것 같습니다. 너무 똑똑한 엔진... 우선 지정되지 않는 path에 대해서 router에서 404 디폴트 페이지로 리다이랙션되도록 만들어 주었습니다.(참고) 이참에 색인을 위한 sitemap.xml을 만들어보자는 생각에 시작했고, 생각보다 한글 자료가 없어 글로 남겨봅니다. 🔹 라이브러리 검색 관련 라이브러리들이 npm..
[Oracle Cloud] 오라클 클라우드 (1) - 가입 및 인스턴스 생성 [Oracle Cloud] 오라클 클라우드 (2) - MySQL 설치 & Workbanch 연결 [Oracle Cloud] 오라클 클라우드 (3) - JDK 설치 (Java) 🔹 Git 설치 git 이외에 FTP 등 방식으로도 배포 파일을 받아올 수 있습니다. 여기서는 git을 사용해서 코드를 clone하고, 빌드 - 배포하는 방식으로 진행했습니다. 1. git 설치 sudo yum install git 2. 설치 확인 git --version 🔹 프로젝트 clone, 빌드. 실행 1. 디렉토리 생성 및 이동 mkdir server cd server 2. clone git clone [git주소] 3. 생성된 프로젝트로 이동 c..
[Oracle Cloud] 오라클 클라우드 (1) - 가입 및 인스턴스 생성 [Oracle Cloud] 오라클 클라우드 (2) - MySQL 설치 & Workbanch 연결 🔹 JDK 설치 1. 루트 권한으로 전환 sudo -s 2. wget으로 원하는 버전 다운 ### java 8 wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz ### java 11 wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz ### java 17 wget http..
[Oracle Cloud] 오라클 클라우드 (1) - 가입 및 인스턴스 생성에서 이어집니다. 🔹 MySQL 설치 각 단계의 코드를 순서대로 입력합니다. 1. 루트 권한 얻기 sudo -s 2. MySQL 설치 wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 sudo yum install mysql-server 아래 이미지처럼 나오면 성공입니다. 3. MySQL 실행 및 상태 확인 systemctl start mysqld sy..
🔹 오라클 클라우드 (Oracle cloud) 소개 클라우드 VM 서비스를 제공하는 회사는 AWS, GCP, Azure, 네이버 클라우드 등 다양합니다. 대부분의 회사에서 여러 자사 서비스를 맛볼 수 있는 프리티어를 제공합니다. 보통은 30일 ~ 1년 동안 얼마의 크레딧을 사용할 수 있게 만드는 경우가 많아 보입니다. 현재 점유율 1위 서비스는 AWS 입니다. AWS는 1년간 프리티어를 제공하고, 프리티어를 초과하여 사용하면 과금이 발생합니다. Oracle Cloud는 업계 후발주자 답게 혹할만한 신규 유저 유입 전략으로 등장했습니다. 기간이 없는 완전 무료 프리티어를 제공합니다. 이는 AWS와 다르게 사용 자원의 한계를 두어 과금이 발생하지 않습니다. 과금에 안전하다는 장점으로 토이 프로젝트에서 사용하..
🔹 문제 요약 Windows OS에서 JMeter를 테스트할 때 5000개 이상의 TCP 연결이 쌓이게 되면 java.net.BindException 에러가 발생합니다. 이는 기본적으로 설정된 시스템 버퍼 공간을 넘어가게 되면서 발생하는 에러입니다. 에러 발생 방법과 원인 및 해결을 알아보겠습니다. TCP 연결 해제(4 way handshake)를 알고 있다면 원인 이해가 더 편합니다. 🔹 문제 재현 다음과 같은 시나리오에서 JMeter를 돌려보겠습니다. 아래와 같이 중간부터 실패 응답을 받게 됩니다. 왜 실패했는지 상세 내용을 봅시다. 해당 포트가 사용 중인 상황에서 주로 발생하는 java.net.BindException이 발생했습니다. 아래 메시지에서 Address already in use: con..