어째서인지 람다 몇개가 Go 언어로 만들어져 있다. Window에서도 사용할 수 있는데, 레퍼런스가 linux가 많기도하고.. 현재 람다에서 쓰는 go 코드가 makefile로 빌드하고 있어서 반강제적으로 linux에서 사용해야 했다. WSL에서 설치하려니 번거로움이 많았는데, 좋은 사이트를 발견해 정리해봤다. 1. Go의 최신 버전 체크 일반 Linux, macOS, Windows는 go에서 제공하는 릴리즈 파일을 사용해 설치하면 된다. https://go.dev/dl/ 2. Go 설치 1월 11일 설치 당시 go 1.21.5 버전이 최신 버전이었다. wget https://dl.google.com/go/go1.21.5.linux-amd64.tar.gz sudo tar -xvf go1.21.5.linu..
robots.txt ? web 서버를 뒤적이다가 robots.txt란 파일을 발견했다. 파일을 열어보니 별 내용이 없었는데 User-agent: * Disallow: / 이런식으로 단 두줄만 작성되어 있었다. 대체 무슨 의미일까? 로봇 배제 표준(robots exclusion standard), 로봇 배제 프로토콜(robots exclusion protocol)은 웹 사이트에 로봇이 접근하는 것을 방지하기 위한 규약으로, 일반적으로 접근 제한에 대한 설명을 robots.txt에 기술한다. 이 규약은 1994년 6월에 처음 만들어졌고, 아직 이 규약에 대한 RFC는 없다. 이 규약은 권고안이며, 로봇이 robots.txt 파일을 읽고 접근을 중지하는 것을 목적으로 한다. 따라서, 접근 방지 설정을 하였다고..
REST API ? HTTP API? 여느 때처럼 AWS 제품군을 구경 중에 AWS API Gateway를 발견해 구경하고 있었다. 평소에 리버스 프록시 쪽에도 관심이 많았기 때문에 열심히 구경하고 있는데.... REST API와 HTTP API ? 이게 이렇게 엄격히 구분되는 개념이었나? 라는 생각이 먼저 들었다. REST API가 뭔진 알고 있는데, HTTP API는 뭐고 구분짓는 기준이 뭔지가 궁금했다. 우선 REST API에 대해 정리해보자. 좀 오래된 내용이지만 아래 유튜브를 참고했다. https://www.youtube.com/watch?v=RP_f5dMoHFc&t=1s&ab_channel=naverd2 REST API의 제약 조건 일단, HTTP API가 조금 더 넓은 범주를 이야기한다는건 ..
이전에 작성한 암호화 관련 글을 쓴 적이 있는데, 어떻게 적용할 것인가에 대해서만 작성했지, 암호화를 어떻게 구현할 것인가에 대한 내용이 빠져서 추가로 정리해보려고 한다. 내가 사용하는 Java 기준이다. 또, 안드로이드-Spring 서버 간 암복호화는 문제가 없었지만, iOS-Spring 간의 암복화에는 문제가 있었고, 아직 해결을 하지 못했다. 그 내용도 정리해보려고 한다. 1. KeyGenerator 프로젝트에서 RSA를 사용했기 때문에, RSA를 기준으로 키를 생성했다. java.security.KeyPairGenerator 클래스에서 instance를 만들어 RSA 키를 생성한다. SecureRandom secureRandom = new SecureRandom(); KeyPairGenerator..
1. 암호화의 필요성과 구분 라이브 서비스를 제공하다보면, 사용자의 개인정보를 서버와 주고 받을 일이 생긴다. 이 때 나쁜 마음을 먹은 누군가가 서버와 클라이언트가 주고 받는 패킷을 가로채버린다면? 개인 정보가 그대로 누출된다. 때문에, 서버와 클라이언트가 중요한 데이터를 주고 받을 때는 암호화를 해줄 필요가 있다. 또, 서비스가 로그인/로그아웃 기능을 제공한다면 비밀번호를 서버에 저장해야한다. 그런데 이 비밀번호가 암호화가 되어있지 않다면? DB가 털리면 모든 계정 정보가 털리게 된다. 당연하지만, 비밀번호도 암호화를 해줘야한다. 하지만, 두 암호화엔 차이가 있다. 라이브 서비스에서 암호화된 개인정보는 대부분 이를 재활용하여 다른 정보를 제공하기 위함이라 암호화된 정보를 복호화할 수 있어야한다. 비밀번..
서버사이드에서 개발하다보면, 객체 컨벤션이 중요하다고 느끼는 시점이 온다.(내가 그 시점인 것 같다..) 가장 먼저 눈에 띄는건 DAO, DTO, VO인데, 세 가지의 객체의 분류가 꽤나 애매하다. 따로 표준화 되어 있지도 않고 POJO라고 불리는 일반적인 자바 객체로 만들어지기 때문이다. 간단하게 내용을 한번 정리하고 가보려 한다. 1. DAO(Data Access Object) 사실 DAO의 역할은 명확하다. 이름부터가 Data Access Object인 것을 보면 알 수 있듯이, 실제로 DB에 접근하는 역할을 하는 객체 생성 디자인 패턴이다. 데이터베이스에 추출 및 저장하는 방법에 대한 세부 정보를 객체로 추상화하는데 사용되며 JDBC를 통해 구현할 경우 CRUD를 처리하는 매서드를 가지고 있는 경..
1. API 란? 웹 개발을 하다보면 가장 많이 듣는 용어 중 하나가 API일 것이다. 그래서 API가 뭐냐? 라고 물으면, 어디서부터 설명해야할까 고민에 쌓이게 된다. API(application programming interface 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스)는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다. 출처 : 위키백과 위키 백과에서 가져온 글만 봐서는 무슨 말인지 와닿지 않는다. 그래서 내가 남들에게 설명할 때는 원하는 정보를 서버나 프로그램에 요청하기 위한 입력 정보 작성 규칙 이라고 한줄로 설명한다. 포괄적인 의미를 담고 있기 때문에 한줄 요약이 틀릴 수 있지만, 개인적으..
- Total
- Today
- Yesterday
- serverless
- OpenFeign
- terraform
- CloudFront
- 티스토리챌린지
- OpenAI
- 오블완
- GIT
- 후쿠오카
- lambda
- docker
- JWT
- AWS EC2
- EKS
- Log
- AWS
- AOP
- ChatGPT
- Kotlin
- cache
- elasticsearch
- MySQL
- 람다
- Spring
- 스프링부트
- java
- openAI API
- springboot
- Elastic cloud
- S3
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |