일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- cleancode
- 스프링
- 프레임워크
- 개발자
- API
- framework
- ES
- 클린코드
- Baekjoon
- 알고리즘
- 데이터베이스
- 개발
- 코드
- database
- 그리디
- 애자일
- 자바
- 읽기쉬운코드
- 코딩
- 엘라스틱서치
- 애자일프로그래밍
- JPA
- Java
- 백준
- 코딩테스트
- 그리디알고리즘
- Spring
- 애자일기법
- Elasticsearch
- db
- Today
- Total
목록기타 (14)
시뻘건 개발 도전기
AWS에서 2018년 정식 출시한 AppSync를 사용하여 OpenSearch에서 데이터를 조회해본다. AWS AppSync with DynamoDB 를 통해 step 4까지 선행 후에 본 포스트를 참고하는 것을 권장한다. OpenSearch에서 데이터를 조회해야하므로 조회할 OpenSearch의 index와 조회해볼 데이터를 넣어둔다. step 1. schema 생성 아래와 같이 스키마를 생성한다. type Source { vseq: Int useripaddress: String sessioninit: Boolean } type Query { getSomeByUseripaddress(useripaddress: String!): [Source] getSomeByVseq(vseq: Int!): [Sourc..
AWS에서 2018년 정식 출시한 AppSync를 사용하여 DynamoDB에서 데이터를 조회해본다. GraphQL을 기반으로한 AppSync는 [그림 1]과 같이 AWS Lambda, DynamoDB, Elasticsesarch, Aurora 또는 HTTP를 이용해 브로드캐스팅하여 원본 데이터를 가지고 손쉽게 api를 제공해줄 수 있다. 이를 이용하여 운영 중에도 신규 api가 추가되거나 기존 api의 spec이 변경되거나 신규 앤드포인트가 생겨도 큰 변화 없이 간편하게 api를 제공하기 위함이다. AppSync API 생성 step 1. AppSync > APIs 우측 상단에 API 생성 버튼 클릭 step 2. API type 선택: GrapgQL APIs, Design from scratch [그림..
AWS AppSync란? AWS AppSync를 사용하면 개발자가 안전한 서버리스 고성능 GraphQL 및 Pub/Sub API를 사용하여 애플리케이션과 서비스를 데이터 및 이벤트에 연결할 수 있습니다. AppSync는 GraphQL을 기반으로 간소화된 데이터 액세스를 할 수 있고 쿼리를 사용할 수 있다. GrapghQL에 대한 내용은 공식 docs를 참고힌다. Pub/Sub을 위한 webSocket을 제공한다. 인메모리 캐시를 사용할 수 있다. js, ts를 지원한다. VPC를 통해 비공개 api 보안 API Key를 제공하여 IAM, Lambda 권한 부여를 지원하는 제어 기능이 있다. 그 밖에 AppSync의 기능은 공식 docs를 참고한다. GraphQL API 설계 스키마 각 GraphQL ap..
Who 나는 이번 해에 6년차를 맞이하는 백엔드 엔지니어다. 지금까지는 회사에서 시키는 것 외에 "뭘 더 알아갈 것이 없나?"하고 이것 저것 시도해보고 장애도 많이 내보면서 "경험"에 포커스를 맞추어 경력을 쌓았다. 6년을 맞이하는 지금, "이제 주니어를 벗어나야하지 않을까?"라는 물음표를 내게 던져보았다. 후배들 앞에서 떳떳하게, 당당하게 창피하지 않은 개발자가 되고싶다. Why 6년동안 내가 생각한 "시니어"라 함은 후배가 업무를 어려워하고 있을 때, 적절한 힌트를 줄 수 있고, 여러 이슈에 대한 해결방안을 제안할 수 있으며 자신이 맡은 메인 업무에 대한 히스토리와 개발 방향 그리고 앞으로의 계획을 설명할 수 있어야한다. 큰 사이즈의 프로젝트가 들어와도 "어디부터 어디까지 손을 대고 어떤 것들을 고려..
일단 방금 유레카를 외치면서 한 바탕 감동의 쓰나미를 즐기다 왔다. 지금 토이프로젝트를 하고 있는데 워낙 사이즈가 크다 보니 별 삽질을 다 하는거 같다ㅜㅜ 방금 내가 무엇을 했냐면 minio로 Object Storage를 구축하고 CDN을 사용했다. Object Storage가 뭐고 CDN이 뭔지는 GPT가 나보다 더 잘 알려줄테니 넘어간다. 자!!! 오늘의 삽질을 기록한다. 1. minio 구축 일단 나의 서버는 arm architecture 32bit를 사용한다.(확인하는 방법 또한 gpt에게로..) minio 바이너리의 최신 버전을 받는다. cd /usr/local/bin/ wget https://dl.min.io/server/minio/release/linux-arm/minio 실행 권한을 부여한..
jenkins 2.4를 설치하려한다. 젠킨스는 jvm 위에서 동작하기때문에 젠킨스 버전 별로 자바 버전도 영향을 받는다. 그래서 젠킨스의 require java version을 알기 위해 아래 공식 포스팅을 보면 좋겠다. https://www.jenkins.io/blog/2022/06/28/require-java-11/ Jenkins requires Java 11 or newer As noted above, members of the Jenkins community began working on Java 11 support in 2018, well before the present author’s involvement in the project and well beyond the present autho..
커널은 OS의 핵심이라고 봐도 무방할 정도로 시스템의 모든 것을 완전하게 통제한다. 운영체제의 다른 부분 및 으용 프로그램 수행에 필요한 여러 서비스를 제공하게되는데 [그림 1]과 [그림 2]을 함께 살펴보면 이해하기 쉬울 것이다. APP은 라이브러리를 통해서 개발이 되는데 라이브러리는 System Call을 통해서 kernel space에 진입하게된다. 만약 하드웨어의 자원이 필요하다! 그런다고하면 Device Driver를 통해 하드웨어에 접근도 가능하다. 그래서 리눅스 커널의 주요 기능은 뭘까? 하드웨어 관리/추상화 디바이스 드라이버만이 하드웨어가 제공하는 기능이나 프로토콜에 관여한다. 사용자 프로그램은 하드웨어에 종속정인 작업이 필요하지 않다. 프로세스와 스레드 관리 cpu 타임 공유와 메모리 보..
Alpine linux에 대해 살짝 알아보고 가자. 알파인 리눅스는 보안/간편성/리소스 효율을 위해서 디자인된 리눅스 배포판이다. [그림 1]과 같이 알파인 리눅스는 glibc 대신에 musl libc를 사용하게 되었는데 라이브러리의 size 차이가 많이 차이나는 사실을 알 수 있다. docker images 상기 command로 OS 이미지의 크기를 [그림 2 ]와같이 알 수 있다. 타 OS 이미지와 비교해보았을 때 알파인이 훨신 더 경량화되어있다는 것을 알 수 있다. 이 처럼 size가 중요한 이유는 메모리/디스크 공간을 적게 잡아먹고, 로딩이 빠른만큼 앱이 올라가는 속도가 빨라진다. 하지만 많은 dependency 라이브러리가 빠져있기 때문에 멀티 스테이지 빌드 방식을 사용한다. # Alpine l..