이끌든지 따르든지 비키든지

분류 전체보기 67

[Node.js] env로 환경변수 관리하기

웹서버에서 DB로 연결을 구성할 때, config 파일에 호스트, 이름, 암호, 포트번호 등을 반드시 작성해야 한다. 로컬 환경에서 개발·테스트를 진행할 때에는 이 정보를 하드코딩(상수나 변수값을 코드에 직접 쓰는 것)해도 큰 문제가 발생하지 않겠지만, public 등에 배포되는 경우, 암호나 비밀키가 그대로 노출되는 문제가 발생한다. 위와 같은 문제를 예방하기 위해 중요한 정보(암호, 비밀키 등)은 환경 변수를 사용해 관리할 것을 권장하는데, Node.js는 process.env 라는 자체 기능을 통해 환경 변수 관리를 지원한다. 하드코딩 방식으로 config를 작성한 경우 const databaseConfig = { database: 'mydatabase', username: 'myuser', pas..

Project/Node.js 2023.09.13

[JAVA] 객체지향과 자바

객체 지향 프로그래밍(Object Oriented Programming)이란 현실 세계의 객체(Object)를 모델링하고 이러한 객체들 간의 상호 작용을 통해 소프트웨어를 개발하는 방법론을 말한다. 객체 지향 프로그래밍에는 크게 4가지 특징과 5가지 원칙(SOLID 원칙)이 있는데, 이 중 특징과 이에 대한 Java에서의 구현에 대해 알아본다. 캡슐화(Encapsulation) 캡슐화란, 서로 관련 있는 정보나 데이터, 이를 처리하기 위한 기능을 한 곳에 모아 관리하고, 필요한 부분만을 외부로 노출하는 것을 말한다. 캡슐에 담긴 데이터에 대한 직접적인 접근은 허용하지 않고, 대신 이를 확인하거나, 수정할 수 있는 인터페이스를 구현해 이를 통해서만, 데이터에 접근할 수 있도록 하는 정보 은닉이 캡슐화의 핵..

[Node.js] 간단한 로그인 기능 구현하기

로그인 / 회원가입은 웹 · 앱 서비스를 개발할 때 필수적으로 들어가야할 핵심 기능 중에 하나다. Node.js 진영에서는 개발 편의성, 보안, 로그인 상태 관리를 위해 Passport, JWT, Bcrypt, OAuth 등등 많은 미들웨어와 라이브러리를 사용하는데, 오늘은 이러한 기능의 사용 없이 Express.js만으로 로그인 요청을 처리하는 로직을 구현해본다. Controller 코드 작성 export default class AuthController { login = async (req, res) => { const { username, password } = req.body; // 원래는 DB에 보관된 사용자 정보와 비교하는 검증 로직이 들어가야함! const isValid = if (user..

Project/Node.js 2023.09.12

[JAVA] 메소드 오버로딩 & 오버라이딩

JAVA에서는 객체지향 프로그래밍의 특징 중 하나인 다형성(Polymorphism)을 구현하기 위해 메소드 오버라이딩, 메소드 오버로딩 2가지 방식을 사용한다. 두 단어가 비슷하고 부모 클래스로부터 상속 받은 메소드를 사용한다는 점이 같아 헷갈려하는 사람이 많다. 두 방식의 개념을 1줄로 요약하자면.. 메소드 오버로딩 - 새로운 메소드를 정의하는 것 메소드 오버라이딩 - 기존에 있던 메소드 재정의하는 것 메소드 오버로딩(Method Overloading) 모든 접근 제어자(public, private, protected ···)를 사용할 수 있다. 메소드명을 변경할 수 없다. 리턴 타입이 달라도 된다. 매개변수(파라미터)가 달라야 한다. 같은 클래스 내에서만 적용할 수 있다. class Calculato..

[JavaScript] 자바스크립트의 이해

JavaScript는 초창기에는 웹 페이지 내에서 동적 표현을 담당했지만, 최근 Node.js라는 자바스크립트 런타임이 등장하며, 프론트엔드는 물론 백엔드 영역까지 아우르는 웹 프로그래밍 언어의 표준으로 자리를 잡고 있다. 자바스크립트의 특징 1. 동적 & 약타입 언어 자바스크립트는 실행 시 데이터 타입을 결정하는 동적 언어이면서, 다른 데이터 타입간에 형 변환이 상대적으로 자유로운 약 타입 언어이다. 문법도 타 언어에 비해 비교적 간단하고, 유연하게 코드를 작성할 수 있어 코드 작성 효율이 높다. // 정적 & 강 타입 언어인 Java int num1 = 10; String str = "Hello"; int result = num1 + str; // 결과 : 컴파일 에러 // 동적 & 약 타입 언어인 ..

[Node.js] Cookie-Parser로 쿠키 구현하기

▶ 쿠키란? 쿠키란, 브라우저와 웹 서버 간에 정보를 교환과 유지를 위해 사용하는 데이터를 말한다. 쿠키는 클라이언트(웹 브라우저) 측에 저장되고, KEY : VALUE 방식으로 데이터를 저장한다. '오늘 하루 이 팝업 보지 않기'나, '로그인 상태 유지' 등 사용자와 브라우저간의 이전 상호작용을 기억하거나, 사용자별로 다른 콘텐츠를 표시하려 할 때 쿠키를 주로 사용한다. Node.js에서는 Cookie-Parser라는 미들웨어를 통해 쿠키 읽기, 쓰기, 삭제 등을 수행한다. Cookie-Parser 설치 방법 npm install cookie-parser npm install --save-d @types/cookie-parser // Typescript 환경에서 작업하는 경우 npm 명령어를 통해 Co..

Project/Node.js 2023.09.11

네이버 클라우드 캠프 1일차

1일차 오전에는 네이버 클라우드 정낙수 이사님, 비트캠프 교육 총괄 담당자 분, 메직에꼴 최재규 대표님이 교육 과정 소개와 앞으로 우리가 가져야 할 마음가짐과 필요한 것에 대해 말씀해주셨다. 1. 목표 설정 너무 먼 곳을 보다 보면 출발도 하기 전에 지친다. 시작부터 결승선을 바라보기보다는 페이스 조절을 하며 한 단계 한 단계 성장하자. 2. 인사 담당자가 나를 뽑고 싶게 만들려면 무슨 내용이 있어야 할까? - 예측가능성지표 나는 성실한 사람이에요. 이 말을 증명할 수 있어야 한다. 출결, 근태 등에 지각, 결석으로 흠점을 남기지 말자. 학창 시절 누구나 다 받는 것 같던 개근상은 아무것도 아니지만 중요하다. - 성장가능성지표 나는 이정도를 할 줄 알고, 더 성장할 가능성이 있음을 보여줄 수 있어야 한다..