728x90
반응형

1. EC2 가상서버 만들기  https://goddaehee.tistory.com/316

 

[AWS] 2. EC2 생성 및 접속하기(AWS SSH키 등록 하기)

2. EC2 생성 및 접속하기 & SSH키 등록 하기 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ EC2 생성, 섭속, 종료 그리고 AWS SSH키 등록 하기 ] 입니다. : ) 시작하기 앞서 - 혹시 공부를 위해서 이 글을 본

goddaehee.tistory.com

 

내 나름대로 요약하자면, AWS 콘솔 로그인후 지역 서울로 설정하여 인스턴스를 만든다.

그리고 조건을 확인하며 인스턴스 생성한후 키 페어 생성하여 폴더에 따로 보관한다!

해당 폴더에서 우클릭 ->  더 많은 옵션 표시 한 후 Git Bash를 실행한다.

입력해야 할 정보는 [연결]에 들어간다.

인스턴트 연결에서 [SSH 클라이언트]에 가면 진행해야할 입력키를 알려준다.

[예:] 여기에 적힌 값을 바로 복사하여 붙여넣기 한다.

다음과 같은 화면이 나오면 git clone [저장소URL]을 입력한다.

이때 저장소URL은 HTTPS와 SSH가 있는데,

HTTPS가 안된다면 바로 SSH로 시도 해봐야 한다.

(HTTPS로 했을 시에는 WRITE와 ADMIN 권한을 줘도 자꾸 권한이 없다고 진행안됨)

 

2. 실행하기: 정상적으로 clone이 되었다면 다음 링크를 보고 따라하면 될 것 같다.

https://hevton.tistory.com/m/530

 

EC2 에 Node.js 웹서버구현 기초

EC2에 우선 ssh로 원격 접속을 해 들어간다. 그 상태에서 먼저 다운로더 패키지를 업데이트 해주고 sudo apt update 그다음 nodejs를 설치해주고 sudo apt install nodejs 그다음 nodejs 패키지매니저인 npm도 다

hevton.tistory.com

 

728x90
반응형
728x90
반응형

SQL Server Management Studio Management Studio 19를 설치해서

새쿼리로 문법연습은 하고 있었지만, VS Code에서 데이터베이스를 다뤄보고 싶었다.

그런데 생각보다 연결할 방법을 찾지 못했다.

열심히 구글링하고 유튜브를 찾아봤지만 헛수고...

공식문서를 들어가봤다!

 

https://learn.microsoft.com/ko-kr/sql/tools/visual-studio-code/mssql-extensions?view=sql-server-ver16 

 

Visual Studio Code mssql 확장명 개요 - SQL Server

Visual Studio Code용 mssql 확장명을 통한 개발

learn.microsoft.com

 

이 부분을 보고 확장 mssql을 설치했다.

 

위에서 보이는 화면처럼 로컬호스트에 연결하려면 localhost 위에 있는 + 버튼을 누르자.

그다음 SQL Server 연결시 보이는 서버이름 을 입력하자.

그후 옵션들을 잘 읽고 인증방법 선택이 나올 것이다.

 Integrated 인증으로 연결완료하였다.

잘 안된다면 추가링크를 확인하자.

추가링크 :  https://pyoja.tistory.com/288

728x90
반응형

'입사후 공부한 내용' 카테고리의 다른 글

[MSSQL] 연결 에러 해결!  (0) 2023.06.16
[ASP.NET] MVC강의 기초 및 심화  (0) 2023.06.13
[ASP.NET] 개념과 역사  (0) 2023.06.13
AWS EC2 가상서버 만들기 + 연결하기  (0) 2023.06.13
[MSSQL] 기본 문법  (0) 2023.06.01
728x90
반응형

공부영상 : https://www.youtube.com/playlist?list=PL1VTPqi5Xgu9pr3oK_j4ranMGEn6fKMFp 

 

MS-SQL

현재 인디애나 대학의 재무 박사과정에 있는 저의 전 조교 안연주 조교가 두물머리의 한태경이사의 도움을 받아 만든 과정입니다.

www.youtube.com

 

<설치과정>

클릭하면 사이트로 넘어감

다운받고 설치 누르면 끝!

 

실습용 데이터자료 : https://github.com/htk1019/sql_server_beginner

해당 자료는 다음 위치에 옮기기

 

프로그램 키기

프로그램이 실행되면 바로 커넥트를 누른다.

공부용 자료 추가하는 방법

이후 OK를 누르면 끝

 

use study (study라는 데이터베이스를 사용하겠다)

go (코드 구분자, go 이전의 코드를 실행 후 다음 코드를 실행하라고 지정함)

 

use study
go
select * from companyinfo

select * from study.dbo.companyinfo

select * from study..companyinfo

study데이터베이스에 존재하는 companyinfo 데이터 테이블의 내용을 가져오라는 의미

 

select distinct IncInCtryCode from companyinfo

중복없이 가져오는 distinct

 

select * from companyinfo where IncInCtryCode='kor'

조건을 거는 where절

 

 

와일드카드

select * from companyinfo where name like 'a%'

a로 시작하는 모든 기업name 찾기

 

select * from companyinfo where name like 'a____'

a로 시작하고 뒤에는 4개의 문자로 이루어진 이름 찾기

 

select IncInCtryCode, Employees, Name 
from companyinfo
where IncInCtryCode is not null
order by IncInCtryCode, Employees DESC

순서정렬 기본은 오름차순인 asc, 그리고 내림차순 desc

 

실무3편

 

실무 4편

 

 

 

 

실무 5편

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
728x90
반응형

1. Call by value와 Call by reference에 대해 설명해주세요.

자바스크립트에서는 원시 타입(primitive type)의 값은 call by value(값에 의한 호출)로 전달되고,
객체 타입(object type)은 call by reference(참조에 의한 호출)로 전달됩니다.

Call by value는 변수에 저장된 값을 복사해서 전달하는 방식입니다. 
이 방식에서는 변수의 복사본이 전달되므로
함수 내부에서 전달 받은 값을 변경해도 원래 변수의 값은 변경되지 않습니다.

반면에 call by reference는 변수 자체가 전달됩니다. 
이 방식에서는 해당 변수의 주소를 전달하므로 함수 내부에서 
전달 받은 값을 변경하면 원래 변수의 값도 변경됩니다.

Call by value는 변수에 저장된 값을 복사해서 전달하는 방식입니다.
장점은 복사하여 처리하기 때문에 매개변수로 전달된 값이 보존되고 안전합니다.
단점으로는 복사를 하기 때문에 메모리 사용량이 늘어납니다.

call by reference는 변수 자체가 전달됩니다. 
장점은 복사하지 않고 직접 참조를 하기 때문에 실행 속도가 빠릅니다. 
단점은 직접 참조를 하기 때문에 원래의 값이 영향을 받습니다.

 

🔥꼬리질문🔥

<  >

 

 

2. DDD와 MSA에 대해 설명해주세요.

DDD(Domain-Driven Design)는 도메인 주도 설계로 도메인 모델을 중심으로
설계하고 구현하는 것을 의미합니다.

도메인은 사건의 집합이라 생각하고,
여러 도메인들이 서로 상호작용하여 설계하는 것이 도메인 주도 설계입니다.
DDD의 핵심은 도메인을 서비스별로 분리하는 것 입니다.

MSA(Microservice Architecture)는 서비스를 작은 단위의 마이크로서비스로 분리하여
개발하는 아키텍처 패턴입니다. 이는 각 마이크로서비스가 독립적으로 배포 및 확장 가능하도록 설계됩니다. MSA의 핵심은 설계 및 정의할 때는 그 경계를 정하는 것이 핵심입니다.

DDD와 MSA는 객체지향과 많은 관련이 있습니다.
DDD와 MSA는 함께 사용하면 대규모 애플리케이션을 설계하고 개발하는 데 도움이 될 수 있습니다.
DDD를 사용하면 애플리케이션의 도메인 지식을 이해하고
MSA를 사용하면 애플리케이션을 작은 서비스로 분해할 수 있습니다.

 

DDD - 우아한 테크톡

참고 링크

https://huisam.tistory.com/entry/DDD

https://learn.microsoft.com/ko-kr/dotnet/architecture/microservices/microservice-ddd-cqrs-patterns/ddd-oriented-microservice

 

🔥꼬리질문🔥

<  >

728x90
반응형
728x90
반응형

1. Nest.js 라이프사이클에 대해 설명해주세요.

💘 NestJS는 Node.js를 위한 프레임워크로, 서버 사이드 애플리케이션 개발을 위해 사용됩니다.

기본적인 순서는 다음과 같습니다.

Middleware => Guards => Pre-Interceptors => Pipes => Controller => Service => Post-Interceptors => ExceptionFilter => Response

1. Middleware

전역으로 바인딩 되어있는 미들웨어를 가장먼저 실행 합니다. (main.ts 에 app.use로 바인딩 되어있는 미들웨어들)

Express와 비슷한 방식으로 바인딩 된 순서대로 순차적으로 실행 됩니다.

2. Guards

사용자의 권한을 체크하는 로직이 들어간다 예를들어 jwt를 사용한다면 @UseGuards()를 통해 jwt의 값이 유효한지 검사 할 수 있습니다.

3. Interceptor

인터셉터는 컨트롤러에 접근하기 전, 후에서 바인딩 시킬 수 있습니다.

컨트롤러에 전에 접근하기 전에 사용하려면 return 전에 사용을하면 되고 컨트롤러 접근후에 사용하려면 return 문에서 사용하면 됩니다.

4. Pipes

요청이 들어오는 파라미터의 validation 혹은 형변환이 필요할 때 파이프에서 진행 합니다.

5. Controller

routing ,http method, Request에 담긴 페이로드, Response에 담을 페이로드를 Controller에서 관리할 수 있습니다.

6. Service

실제 비지니스 로직을 Service 단 에서 관리 할 수 있습니다.

7. ExceptionFilter

익셉션 필터는 로직을 처리하다가 오류가 발생 하면 HttpException을 throw 하게 됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형
728x90
반응형

 

1. 자료구조 및 알고리즘 개념에 대해 설명해주세요.

자료구조는 데이터를 저장하고 관리하는 방법입니다.
궁극적인 목표는 데이터를 빠르고 안정적으로 처리하는 것입니다.
알고리즘은 어떠한 문제를 해결하기 위해 정해진 절차로 특정 문제를
효율적이고 빠르게 해결하는 것을 목표로 합니다.

 

🔥꼬리질문🔥

<  >

 

 

2. 주소창에 “www.google.com” 쳤을때 일어나는 일을 설명해주세요.

첫째 DNS 조회를 합니다.입력받은 주소를 DNS서버에 보내 해당 도메인 IP주소로 변환합니다.
둘째 서버 연결을 합니다. 받은 IP주소로 해당 서버에 연결을 시도합니다.
셋째 서버에 HTTP요청을 합니다.
넷째 서버는 요청받은 값에 대한 응답을 생성합니다.
다섯째 응답받은 값을 렌더링합니다.
여섯째 렌더링 된 값을 웹페이지에 표시합니다. 

 

자세한 내용은 다음의 링크를 참고

 

주소창에 'www.google.com'을 쳤을때 일어나는일 쉽게 설명하기

DNS 조회(DNS Lookup): 웹 브라우저는 입력한 주소를 가지고 DNS(Domain Name System) 서버에 해당 도메인의 IP 주소를 요청합니다. DNS는 도메인 이름을 해당 도메인의 IP 주소로 변환해주는 역할을 합니다.

velog.io

 

728x90
반응형
728x90
반응형

1. TypeORM 및 Query builder 개념에 대해 설명해주세요.

TypeORM은 Node.js에서 관계형 데이터베이스를 사용하는 데 사용되는 ORM입니다. 
ORM은 객체 지향 프로그래밍 언어와 
관계형 데이터베이스 간의 매핑을 제공하는 소프트웨어 도구입니다.
Query Builder는 TypeORM의 기능 중 하나로 SQL 쿼리에 대한 깊은 이해없이
데이터베이스에 대한 복잡한 쿼리를 작성할 수 있습니다.

 

🔥꼬리질문🔥

< N+1 문제에 대해 설명해주세요.  >

N+1 문제는 데이터베이스 쿼리 성능 문제로, 1번의 쿼리로 N건의 데이터를 가져왔는데, 
관련 컬럼을 얻기 위해 쿼리를 N번 추가로 수행하는 문제를 말합니다. 
이 문제는 쿼리결과 건수마다 참조 정보를 얻기 위해 건수만큼 반복해서 쿼리를 수행하게 되는 경우 발생합니다.

N+1 문제는 성능에 큰 영향을 줄 수 있기 때문에 해결하는 것이 중요합니다. 
해결 방법은 연관된 데이터를 한 번에 조회하는 방법입니다. 
예를 들어 게시물 엔티티를 조회할 때, 댓글 엔티티를 조인하여 한 번에 조회하는 방식으로 구현할 수 있습니다.
다른방법으로는 Fetch Join은 엔티티를 조회할 때 연관된 엔티티를 미리 조회하는 방법입니다.

 

2. JWT와 세션과 쿠키의 차이점을 설명해주세요.

쿠키는 클라이언트에 저장되는 작은 데이터 파일입니다. 
서버가 클라이언트에게 쿠키를 전송하면, 클라이언트는 이후 요청 시 
쿠키를 함께 전송하여 서버가 클라이언트를 식별할 수 있도록 합니다.

세션은 서버에서 클라이언트의 상태 정보를 저장하는 기술입니다. 
세션은 쿠키와 달리 서버에 저장되며, 클라이언트는 세션 ID를 쿠키에 저장하여 서버와 통신합니다. 
서버는 세션 ID를 통해 클라이언트의 상태 정보를 식별합니다.

JWT는 토큰 기반 인증 방식으로, 서버가 클라이언트에게 토큰을 발급하고 클라이언트는 
이후 요청 시 토큰을 함께 전송하여 서버가 클라이언트를 식별할 수 있도록 합니다. 
JWT는 헤더, 페이로드, 서명으로 구성되며, 
페이로드에는 클라이언트의 정보가 포함될 수 있습니다.

세 가지 방식의 차이점은 저장 위치와 보안성에 있습니다. 
쿠키는 클라이언트에 저장되며 보안성이 낮습니다. 세션은 서버에 저장되며 보안성이 높습니다. 
JWT는 클라이언트에 저장되지만, 서명을 통해 보안성을 유지합니다..

 

🔥꼬리질문🔥

< 엑세스토큰과 리프레쉬 토큰에 대해 간략하게 설명해주세요.  >

액세스 토큰은 서버에 대한 일시적인 액세스 권한을 부여하는 데 사용됩니다. 
서버에 리소스에 대한 액세스를 요청할 때마다 클라이언트는 액세스 토큰을 전송합니다. 서버는 토큰을 확인한 다음 요청을 승인하거나 거부합니다.

리프레시 토큰은 새 액세스 토큰을 요청하는 데 사용됩니다. 
액세스 토큰이 만료되면 클라이언트는 리프레시 토큰을 사용하여 새 액세스 토큰을 요청할 수 있습니다. 서버는 토큰을 확인한 다음 새 액세스 토큰을 발급합니다.

액세스 토큰은 짧은 시간 동안만 유효하고 리프레시 토큰은 더 오랜 시간 동안 유효합니다. 
이를 통해 클라이언트는 서버에 리소스에 대한 지속적인 액세스 권한을 유지하면서 액세스 토큰을 자주 새로 고칠 필요가 없도록 할 수 있습니다.

728x90
반응형
728x90
반응형

1. Redis와 Memcached의 차이점에 대해 설명해주세요.

Redis와 Memcached는 모두 키-값 저장소이지만 몇 가지 주요 차이점이 있습니다.
Redis는 Memcached보다 더 광범위한 데이터 유형을 지원합니다. Redis는 정수, 문자열, 목록 및 해시와 같은 다양한 데이터 유형을 저장할 수 있는 반면 Memcached는 문자열만 저장할 수 있습니다.
Redis는 Memcached보다 더 많은 기능을 제공합니다. Redis는 스트림, 큐 및 세션을 포함한 다양한 기능을 제공하는 반면 Memcached는 이러한 기능을 제공하지 않습니다.
Redis는 Memcached보다 확장성이 뛰어납니다. Redis는 분산된 방식으로 실행할 수 있는 반면 Memcached는 분산된 방식으로 실행할 수 없습니다.
전반적으로 Redis는 Memcached보다 더 기능적이고 확장성이 뛰어나고 다양한 데이터 유형을 지원하는 더 광범위한 데이터베이스입니다. 그러나 Memcached는 Redis보다 단순하고 사용하기 쉬우며 더 빠릅니다.

 

🔥꼬리질문🔥

<  >

 

2. XSS와 CSRF에 대해 설명해주세요.

XSS는 공격자가 악성 스크립트를 웹 페이지에 삽입하여 사용자가 악성 스크립트를 실행하도록 유도하는 공격입니다. 
공격자가 사용자의 쿠키나 세션 정보를 훔치거나 사용자를 다른 웹사이트로 리디렉션하는 데 사용할 수 있습니다.
CSRF는 공격자가 사용자가 웹 애플리케이션에 요청을 보내도록 유도하여 의도하지 않은 작업을 수행하는 공격입니다. 
공격자는 사용자의 계정을 제어하거나 돈을 훔치거나 기타 피해를 입히는 데 사용할 수 있습니다.

 

🔥꼬리질문🔥

<  >

728x90
반응형

+ Recent posts