안녕하세요. 다메카솔🐿️ 입니다.

지난 4.17일 PostgreSQL 100% 활용법 밋업에 참석하였습니다.

한동안 공부에 운동에 정신이 없어서 컨퍼런스 관련 정보를 찾아보지 못하고 있었는데, 갑자기 생각나서 찾아보니 평소에자주 사용하는 PostgreSQL 관련 밋업이 있어 바로 신청하였습니다.

신청하면서 개발자 입장에서 데이터베이스로 PostgreSQL와 mysql을 모두 사용해본 경험이 있지만, 둘의 차이가 뭘까? 생각했을 때 그냥 sql만 작성하고 제품 이름만 다르다, postgreSQL은 ORM에 친화적이다 정도로 아무것도 모르고 있다는 사실에 좀 충격받아서 기대를 가지고 참석하였습니다. 

 

https://www.meetup.com/pgmeetupseoul/events/300140824/

 

Login to Meetup | Meetup

Not a Meetup member yet? Log in and find groups that host online or in person events and meet people in your local community who share your interests.

www.meetup.com

아래는 밋업 정보입니다.

밋업 정보

[📣밋업 안내📣]

  • 일시
    2024년 4월 17일 수요일 18:30~20:30 (2시간)
  • 모집 일정
    2024년 4월 1일 ~ 4월 16일 (선착순)
  • 장소
    삼성역 섬유센터빌딩 2층 컨퍼런스홀 C3룸 (서울 강남구 테헤란로 518)
  • 식사
    샌드위치와 생수 제공
  • 후원
    비트나인
  • 참석비용
    무료

[🎁밋업 참석자 혜택🎁]

  • 참석자 혜택 1
    어디서도 들어볼 수 없는 생생한 PG 이야기를 실무자가 직접 들려드립니다.
  • 참석자 혜택 2
    현장 추첨을 통해 따뜻한 신상 도서를 선물로 드립니다.
    참석자 혜택 3
    추후 PostgreSQL Meetup Seoul 운영진으로 활동할 수 있는 기회를 드립니다.

[⏰밋업 시간표⏰]

  • 18:30 밋업 등록 및 식사
  • 18:50 환영인사
  • 18:55 보너스 세션: PostgreSQL Community 참여/기여 방법
  • 19:05 세션1: 실무에 적용하는 PostgreSQL 아키텍쳐 구성 방법
  • 19:35 세션2: PG Extension: 신개념 데이터 구조 저장: Apache AGE
  • 20:05 네트워킹
  • 20:30 마무리

아는 지인과 함께 세션을 등록하여 도착하였는데, 조금 일찍 도착하였음에도 사람들이 줄을 서 있었습니다.

대기 줄

앞에 계신 분은 함께 참석한 개발자분인데 초상권을 위해 모자이크 처리 하였습니다.

약간 사건 관계자 인터뷰 모자이크 느낌이 나긴 하지만 그림판으로 최선을 다했습니다...

 

줄을 서서 밋업 신청 확인을 하는데, 신청이 제대로 안되어있어 현장 신청을 하느라 조금 입장이 늦어졌습니다.

사진은 못찍었지만 맛있는 샌드위치랑 물을 주셔서 간단히 저녁 대용으로 먹고 세션을 기다렸습니다.

 

본격적으로 세션이 시작되기 전에, 오픈소스인 포스트그레 커뮤니티 대한 세션이 있었는데, 어떻게 기여할 수 있는지 절차를 설명해주시는 것을 보고, 항상 마음속으로만 있었던 많이 사용하는 오픈소스에 참여하여 개발자 생태계에 기여해보고 싶다는 생각이 다시 생기기 시작하였습니다.

항상 구체적인 방법이 너무 막막하였는데, 자세한 절차나 사례들을 설명해 주시니 한번 도전해볼까? 라는 생각이 들어 정보를 더 찾아봐야 될 것 같습니다.

 

세션에 관한 자세한 내용은 생략하고 두 세션 모두 열정적으로 발표해주셔서 시간가는 줄 모르고 들었습니다.

 

위 사진에 있는 좌석이 거의 만석이 될 정도로 많은 분들이 참석해주셨고, 세션 중간중간에 문답 시간에도 어려운 질문에도 상세하게 답변을 해주셔서 다음에 또 밋업이 있다면 참석할 예정입니다. 

안녕하세요. 다메카솔🐿️ 입니다.

이번에 읽은 책은 최근 관심이 많아진 아키텍처에 관련된 책입니다.

클린 아키텍처 책 표지

https://product.kyobobook.co.kr/detail/S000001033082

 

클린 아키텍처: 소프트웨어 구조와 설계의 원칙 | 로버트 C. 마틴 - 교보문고

클린 아키텍처: 소프트웨어 구조와 설계의 원칙 | 살아있는 전설이 들려주는 실용적인 소프트웨어 아키텍처 원칙 소프트웨어 아키텍처의 보편 원칙을 적용하면 소프트웨어 수명 전반에서 개발

product.kyobobook.co.kr

후기
독서기간 :  2024.03
독서시간 : 20H
평점 : ★★★★★
한줄평 : 구루의 경험으로 배우는 프로그래밍 설계의 교과서

클린 코드도 유명하지만, 클린 아키텍처 책도 개발 공부를 시작할 때 많이 추천받은 책이었습니다.
처음 읽었을 때는 아직 프로그램의 가장 작은 단위 코드들도 작성하는데 쉽지 않을 때라 책을 읽어도 바라보는 시각이 차이가 많이 나서 내가 직접 활용하기가 어렵다고 느꼈었습니다.
나중에 시간이 지나면서 구현이 아닌 설계, 객체지향, 함수형 프로그래밍, 그리고 설계 원칙(자바의 SOLID 등), 또 MSA 아키텍처나 비동기 프로그래밍, 의존성과 결합도 등 학습에 꾸준한 관심을 가지는 개발자들이라면 자주 볼 수 밖에 없는 지식들에 조금 익숙해졌을 때, 다시 한번 먼 이야기로 느껴지던 설계와 아키텍처에 대해 공부해보고 싶다는 생각을 했습니다.

많은 내용이 나오는 책이지만 조금 익숙해진 개념들이 자주 나오다보니 읽는데 정말 재밌게 읽었습니다.
특히 경력 30년차의 대선배가 옆에서 이야기해주는 것 같은 펌웨어까지 개발하던 시기에서부터 지금까지 시행착오를 거치며 발전한 아키텍처의 필요성이 교과서에서 보던 것과는 다르게 `만약 내가 그런 상황있더만 열마나 고생했을까?` 를 생각하며 읽다보니 몰입이 잘 되었던 것 같습니다.

기억남았던 내용들은, 절차지향 -> 객체지향 -> 함수형 프로그래밍이 나오게 된 기저에는 코드에 대한 제약이 있다. 무엇이 좋은 코드인지는 분명하지 않지만, 무엇이 오답인 지는 경험을 통해 알 수 있다. 이었습니다. 
선배 개발자들이 개발하면서 겪은 고통스러운 과정을 통해 절차지향은 제어흐름의 직접적인 전환에 대한 규칙(메모리의 goto 문), 객체지향은 제어흐름의 간접적인 전환에 대한 규칙(모듈에서 더 나아간 역할과 책임, 협력으로 이루어진 제어흐름), 함수형 프로그래밍은 할당문에 대한 규칙(변수를 선언하는데 사이드 이펙트를 예방할 수 있는 각종 규칙들)이 제안되었다는 점은 단순히 개발 패러다임으로 바라볼 때와는 다르게 전체 프로그램 역사가 모두 이어지는 느낌을 받았습니다.

더 확장하여, 특정 언어에 국한되지 않고, 코드들이 어떻게 구성되면 좋은지 에 대해 저자의 시간의 흐름에 따른 경험을 바탕으로 얻은 원칙들을 배울 수 있었습니다.

아직 실무에 모두 적용하기엔 시간이 많이 걸리겠지만, 프로젝트에서 자주 보이던 xxxService, xxxServiceImpl 클래스의 의미가 이전에는 관습적으로 느껴지던 인터페이스가, 지금은 설계와 구현을 분리한 것이고, SRP를 준수하며, 좋은 아키텍처 로서 미래의 변경사항에 대비해 구성요소를 쉽게 분리할 수 있도록 준비해둔 아키텍처 요소로 보이게 되어서 시야가 넓어진 느낌을 받았습니다.

시간이 된다면 꼭 읽어보시는 걸 추천드립니다.

안녕하세요. 다메카솔🐿️ 입니다.

개발을 처음 시작할 때 추천받고 읽기 시작했지만 완독에 굉장히 오래 걸렸던 책 객체지향 사실과 오해 입니다.

 

https://product.kyobobook.co.kr/detail/S000001628109

 

객체지향의 사실과 오해 | 조영호 - 교보문고

객체지향의 사실과 오해 | 객체지향에 대한 선입견을 버려라!『객체지향의 사실과 오해』는 객체지향이란 무엇인가라는 원론적면서도 다소 위험한 질문에 답하기 위해 쓰여진 책이다. 안타깝

product.kyobobook.co.kr

 

독서기간 : 2023.05 ~ 2024.02

독서시간 : 10H +

평점 : ★★ ☆☆

한줄평 : 개발자 추천서에 꼭 들어가지만 읽기 쉽지 않은 책

 

객체지향 프로그램을 할 때 어떤 관점으로 프로그램을 바라보고 개발을 해야 더 생산성이 높을까?
자바를 처음 배울 때 클래스 생성부터 시작하여 메인함수 구현, 자동차나 붕어빵 클래스를 만들어서 객체들을 생성하고 값을 할당하는 등 기본 문법을 익혀나갑니다.


기능구현을 할 수 있게되고 프로그램을 작성하게 되면서 기능개발, 유지보수, 요구사항 변경 등 생산성에 대한 고민을 하게 되는데 이때 변화하는 요구사항에 유연하고 읽기 쉬운 코드, 견고한 프로그램을 작성할 수 있는 패러다임에 대해 앞서 나간 선배 개발자가 후배들에게 여러 예시로 설명을 해주는 내용이었습니다.


저는 보통 책을 읽을 때 출퇴근 시간에 읽는데, 내용이 추상적이고 예시가 많고 비슷하게 보이는 내용의 작은 차이들을 설명하는 글들이 많아 출퇴근때 읽기에는 가독성이 좋지 않아 완독에 많은 시간이 걸렸습다.
너무 자주 책을 덮는 일이 반복되어 왜이리 안읽히지 고민을 해보았는데 든 생각은 초보자가 읽기에는 다소 내용이 딱딱하게 느껴졌고, 어느정도 배경지식이 있어야 독서효율성이 나올 것 같습니다.


내용은 분명 알찬 책이지만, 읽기 쉬운 코드, 바보처럼 단순한 코드가 좋은 코드, 유지보수하기 쉬운 코드라 말하는 개발자의 관점으론 과연 독자에게 좋은 책인가? 라는 의문이 듭니다.
내공이 얕아서 그럴 수 있어 한 1~2년 뒤에 다시 한번 읽어볼 생각입니다.

안녕하세요. 다메카솔입니다. 🐿️

 

현재 회사에서 ISMS-P 인증을 준비하고 있습니다.

이를 위해서 데이터베이스에 저장되는 정보 중에 민감정보 암호화 작업이 어떻게 되는지 파악하고, 암호화 알고리즘이 얼마나 안전한지 점검하는 업무를 수행하였습니다.

 

이때 점검한 암호화 알고리즘의 종류에 따른 차이점에 대해 찾아보았습니다.

암호화에는 단방향 암호화와 양방향 암호화가 있는데, 이번 시간에는 단방향 암호화에 대해서만 살펴보도록 하겠습니다.

 

암호화 이미지 - 출처 KEYSIGHT

해시 알고리즘

해시 알고리즘은 고정된 크기의 고유한 값(해시 값 또는 해시 코드)을 생성하는 알고리즘입니다. 주어진 입력 데이터에 대해 항상 동일한 크기의 고정된 길이의 출력을 생성하며, 해시 함수라고도 불립니다. 해시 함수의 주요 특징은 다음과 같습니다:

  1. 고유성: 서로 다른 입력에 대해서는 고유한 해시 값을 생성합니다. 그러나 해시 함수의 출력 크기가 고정되어 있기 때문에 두 개 이상의 서로 다른 입력이 같은 해시 값을 갖을 수 있습니다. 이것을 '충돌'이라고 합니다.
  2. 고속성: 빠르게 계산될 수 있어야 합니다.
  3. 역전 불가능성: 해시 값으로는 원래 데이터를 역산하기 어렵습니다. 즉, 해시 값으로는 원래 데이터를 복원할 수 없어야 합니다.
  4. 비슷한 입력에 대한 다양한 출력: 입력의 작은 변화에 대해 큰 차이를 가져와야 합니다.

해시 알고리즘은 주로 데이터의 무결성을 검증하거나, 암호화된 비밀번호를 저장할 때 사용됩니다. 대표적인 해시 알고리즘에는 MD5, SHA-1, SHA-256, SHA-3 등이 있습니다.

 

우리에게 가장 중요한 것은 SHA 알고리즘입니다.

SHA (Secure Hashing Algorithm)는 암호화 보안에 사용됩니다. 이 알고리즘의 가장 중요한 전제는 해시의 비가역성과 고유성입니다. 비가역성-원본 데이터는 안전하고 알려지지 않은 상태로 유지됩니다. 고유성-두 개의 다른 데이터가 동일한 키를 생성 할 수 없습니다.

단방향 암호화 (One-way Encryption 또는 Hashing):

  • 특징:
    • 입력 데이터를 암호화한 결과를 역으로 해독할 수 없습니다.
    • 주로 암호화된 값을 저장하거나 전송할 때 사용됩니다.
    • 대표적으로 해시 함수 (예: SHA-256, MD5)가 사용됩니다.
    • 동일한 입력에 대해서는 항상 동일한 해시 값이 생성됩니다.
    • 주로 암호화된 비밀번호를 저장하고, 데이터 무결성을 검증하는 데 사용됩니다.
  • 예시:
    • 웹 사이트에서 사용자의 비밀번호를 해시하여 저장하고, 로그인 시에 입력된 비밀번호를 해시하여 저장된 해시 값과 비교합니다.

SHA-1 (Secure Hash Algorithm 1)

  • 길이: 160 비트
  • 출시 년도: 1993년
  • 특징: SHA-1은 빠른 속도와 간단한 구조를 가지고 있습니다. 그러나 현재는 충돌에 취약한 것으로 알려져 있어 보안 측면에서는 사용을 권장하지 않습니다. 실제로 SHA-1은 많은 곳에서 보안 요구 사항을 충족하지 못하게 되었고, 대부분의 보안 전문가들은 SHA-1을 피하고 SHA-2나 SHA-3으로 전환할 것을 권장합니다.

SHA-2 (Secure Hash Algorithm 2)

  • 길이: 다양한 길이를 가지고 있으며, 주로 224, 256, 384, 512 비트가 사용됩니다.
  • 출시 년도: 2001년
  • 특징: SHA-2는 SHA-1의 취약성을 보완하기 위해 개발되었습니다. 다양한 해시 길이를 지원하며, 길이가 길어질수록 더 강력한 보안을 제공합니다. 현재까지 안전하게 사용될 수 있는 해시 알고리즘 중 하나로 간주되고 있습니다.

SHA-256

  • 길이: 160 비트
  • 출시 년도: 1993년
  • 특징: SHA-1은 빠른 속도와 간단한 구조를 가지고 있습니다. 그러나 현재는 충돌에 취약한 것으로 알려져 있어 보안 측면에서는 사용을 권장하지 않습니다. 실제로 SHA-1은 많은 곳에서 보안 요구 사항을 충족하지 못하게 되었고, 대부분의 보안 전문가들은 SHA-1을 피하고 SHA-2나 SHA-3으로 전환할 것을 권장합니다.

비교 요약

  • 보안 수준: SHA-1 < SHA-256 < SHA-2 (다양한 길이)
  • 사용 권장 여부: SHA-1 (피하길 권장), SHA-256 및 SHA-2 (현재까지 안전한 보안 수준을 제공하므로 사용 가능)

결론

암호화 알고리즘은 SHA-2 이상을 사용하기를 권장하고 있습니다.

참고자료

NIST FIPS PUB 180-4

 

FIPS 180-4, Secure Hash Standard (SHS) | CSRC

Publications Secure Hash Standard (SHS)     Documentation     Topics Date Published: August 2015 Supersedes: FIPS 180-4 (03/06/2012) Planning Note (03/07/2023): After two rounds of public comment, NIST has decided to revise FIPS 180-4. Author(s) Nati

csrc.nist.gov

https://ko.wikipedia.org/wiki/SHA

 

SHA - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. SHA(Secure Hash Algorithm, 안전한 해시 알고리즘) 함수들은 서로 관련된 암호학적 해시 함수들의 모음이다. 이들 함수는 미국 국가안보국(NSA)이 1993년에 처음으로 설

ko.wikipedia.org

https://ko.wikipedia.org/wiki/SHA-2

 

SHA-2 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. SHA-2 (Secure Hash Algorithm 2)는 미국 국가안보국(NSA)이 설계한 암호화 해시 함수들의 집합이다.[1] 암호 해시 함수는 디지털 데이터 상에서 수학적으로 동작하며 알

ko.wikipedia.org

 

문의 사항이나 도움이 필요하신 분은 댓글 달아주세요!

안녕하세요. 다메카솔입니다. 🐿️

개발중에 발생한 에러를 예방하기위해 원인과 해결방법을 정리해보았습니다.

발생 배경

API에 Request를 보낼때, 서버에서 다음과 같은 에러가 발생하였습니다.

오류 메시지

Cannot construct instance of `class` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator))

원인

위 에러는  주로 Jackson 또는 다른 JSON 라이브러리를 사용하여 JSON 데이터를 해당 클래스의 객체로 변환하는 중에 발생합니다. 이러한 라이브러리들은 클래스를 직렬화하거나 역직렬화할 때 기본 생성자 (default constructor) 또는 특정 생성자를 사용하는데, 클래스에 기본 생성자가 없거나 또는 라이브러리가 사용할 수 있는 생성자가 없을 때 발생합니다.

블록을 조립한 레고 이미지

 

직렬화와 역직렬화에 대해 더 궁금하시다면 아래 글도 함께 읽기 좋습니다.

https://damecasol.tistory.com/33

 

[Java]Serializable 직렬화

가끔 인터페이스를 보다보면 Serializable 이란 인터페이스를 상속한 클래스를 볼 수 있었다. 검색해봤을땐 직렬화를 가능하게 해주는 인터페이스고, 그렇게 하여 파일이나과 인터넷으로 객체를

damecasol.tistory.com

 

해결방법

  • 기본생성자 추가

클래스에 기본 생성자를 추가합니다.. 기본 생성자란 매개변수를 가지지 않는 생성자입니다.

public class YourClass {
    public YourClass() {
        // 기본 생성자 내용
    }
}
  • 매개변수가 있는 생성자의 존재

클래스에 매개변수가 있는 생성자가 있는 경우, 해당 생성자도 정의되어 있는지 확인합니다. 만약 라이브러리가 특정 생성자를 필요로 하는데 그 생성자가 없다면 이 오류가 발생할 수 있습니다.

public class YourClass {
    public YourClass(String param1, int param2) {
        // 매개변수가 있는 생성자 내용
    }
}
  • @JsonCreator 어노테이션 사용

만약 여러 생성자가 있는 경우, Jackson 라이브러리에서 사용할 생성자를 명시하기 위해 @JsonCreator 어노테이션을 사용할 수 있습니다.

public class YourClass {
    private String param1;
    private int param2;

    @JsonCreator
    public YourClass(@JsonProperty("param1") String param1, @JsonProperty("param2") int param2) {
        this.param1 = param1;
        this.param2 = param2;
    }
}

참조

https://fasterxml.github.io/jackson-databind/javadoc/2.13/com/fasterxml/jackson/databind/ObjectMapper.html

 

ObjectMapper (jackson-databind 2.13.0 API)

Convenience method for doing two-step conversion from given value, into instance of given value type, by writing value into temporary buffer and reading from the buffer into specified target type. This method is functionally similar to first serializing gi

fasterxml.github.io

 

문의 사항이나 도움이 필요하신 분은 댓글 달아주세요!

'IT > JAVA' 카테고리의 다른 글

[Mybatis] CDATA 란?  (0) 2023.03.15
[Java]Serializable 직렬화  (0) 2022.06.12

안녕하세요. 다메카솔🐿️ 입니다.

요즘 PKM(개인지식관리)와 옵시디언, 제텔카스텐에 관심이 생겨서 읽었던 책을 소개해드립니다.

https://product.kyobobook.co.kr/detail/S000001534370

 

하우 투 제텔카스텐(How to Zettel-Kasten) | 제레미 강 - 교보문고

하우 투 제텔카스텐(How to Zettel-Kasten) |

product.kyobobook.co.kr

 

독서기간 : 2023.10

독서시간 : 5H

평점 : ★★☆☆☆

한줄평 : 제텔카스텐 입문 책, 하지만 바로 적용하기는 힘든 기본서

 

개인지식관리에 관심이 생기며, 세컨드브레인(https://damecasol.tistory.com/95) 책을 읽은 뒤에 메모 관리 방법을 더 개선하기 위해 제텔카스텐 책을 읽었습니다.

 

관련 서적을 탐색하였을 때, 독일의 사화학자 니클라스 루만의 메모기법을 숀케 아레스가 연구 분석 한 뒤 소개한 제텔카스텐 책과 이번에 읽은 하우 투 제텔카스텐 책 2권이 있었습니다.  https://product.kyobobook.co.kr/detail/S000001534368

 

제텔카스텐 | 숀케 아렌스 - 교보문고

제텔카스텐 |

product.kyobobook.co.kr

책 내용을 훑어봤을 때, 조금 더 가볍고 읽기 쉽겠다고 생각된 하우 투 제텔카스텐 책을 출퇴근하면서 읽었는데, 개인적으로 책을 읽은 뒤에 큰 도움을 받았다고 느끼지는 못했습니다.

 

이유를 고민해보면, 우선 출퇴근시간이라는 TPO에 맞지 않은 책이었다는 점이었습니다.

메모 관리기법을 실제로 적용하기 위해서는, 메모 도구들을 점검하고 템플릿을 만들고 실제로 써보면서 숙달시켜야 하는데, 이론만 읽고 적용을 하지 못하니 휘발성 지식으로 사라져 결국 기존의 메모습관에서 머물러있게 되었습니다.

또 한가지는 책이 전달하는 내용의 효용성보다 유튜브에서 제텔카스텐을 소개하고 적용하도록 정리되어있는 영상들이 더 큰 도움이 된다고 느꼈습니다. 영상들은 실제 사용법도 소개해주고 중요내용을 짧게 요약하여 핵심을 쉽게 파악할 수 있었는데, 책을 읽을때는 어려웠다고 느껴졌습니다.

 

하지만 제텔카스텐을 제대로 알기 위한 내용들이 잘 정리되어 있어서 읽기위한 준비가 잘 안되어있을 뿐이지, 후에 다시 한번 읽어보고 싶은 책이었습니다.

지난 2023-10-28일, AWS Solutions Architect - Assosiate 시험에 응시하였습니다.

 

최근에는 클라우드를 사용하지 않는 시스템을 찾는 것이 힘들 정도로 많은 조직과 기업들이 클라우드 환경에서 서비스를 운영하고 있습니다. 이러한 상황에서 시스템 운영을 더 효과적으로 하기 위하여 클라우드 서비스에 대해 공부를 해야겠다는 필요성을 느꼈으며, 이왕 공부하는 김에 좀 더 체계적으로 공부하고 이를 테스트하기 위하여 시험을 준비하였습니다.

 


처음 시험을 준비할 때는 다양한 종류의 클라우드 서비스가 있는데, 어떤 것을 먼저 공부할지부터 선택하였습니다.

Amazon Web services, Google Cloud Platform, Microsoft Azure, Naver Cloud Platform 등 여러 클라우드 서비스가 있는데, 그 중에 가장 많이 사용하는 AWS를 선택하여 학습을 진행하였습니다.

 

AWS는 다양한 종류의 자격 시험이 존재합니다.

이중에 백엔드 개발자들이 보편적으로 많이 응시하는 Solutions Architect Associate level로 시험을 준비하였습니다.


시험을 준비할 때, 인터넷에 다양한 사람들의 시험 후기와 학습자료, 노하우 등을 찾아 저에게 적합한 커리큘럼을 구성하였습니다.

가장 많이 추천하는 Udemy 강의를 수강하고, 직접 실습한 뒤에, 기출 문제를 풀고 시험을 응시하였습니다.

https://www.udemy.com/course/aws-certified-solutions-architect-associate-saa-c03


시험 내용은, AWS 서비스 전반에 걸쳐 비용 및 성능에 최적화된 솔루션 설계에 중점을 두고, AWS Well-Architected Framework에 대한 이해력을 시험합니다. 

주요 과목에 대한 정보는 다음과 같습니다.

배우게 될 내용

이 자격증을 준비하고 취득하면 다음을 증명할 수 있습니다.

  • 컴퓨팅, 네트워킹, 스토리지 및 데이터베이스 AWS 서비스는 물론, AWS 배포 및 관리 서비스에 대한 지식과 기술
  • AWS에서 워크로드를 배포, 관리, 운영한 경험과 보안 제어 및 규정 준수 요구 사항 구현에 대한 지식과 기술
  • AWS Management Console 및 AWS Command Line Interface(CLI) 사용에 대한 지식 및 기술과 AWS Well-Architected Framework, AWS 네트워킹, 보안 서비스 및 AWS 글로벌 인프라에 대한 이해
  • 주어진 기술 요구 사항에 부합하는 AWS 서비스를 식별하고 AWS 기반 애플리케이션의 기술 요구 사항을 정의하는 능력

개인적으로 AWS 서비스를 공부하는 것 뿐만 아니라, 주니어 개발자의 입장에서 서비스를 구성하는 여러 필수개념들(로드밸런스, 헬스체크, CDN, DNS, VPC, 네트워크, 프록시와 캐시, 다양한 종류의 데이터베이스)을 공부할 수 있었다는 점에서, 만족도가 큰 시험이었습니다.


시험은 Personal Vue를 통하여 온라인으로 진행하였습니다.

AWS 자격증 챌린지를 통하여 다소 비싼(150 달러) 시험을 50% 할인받을 수 있는 바우쳐를 얻을 수 있으니, 시험 준비하시는 분들은 꼭 신청하여 할인 받으시길 바랍니다.

예시 주소 : AWS Professional 자격증 챌린지

https://pages.awscloud.com/APAC-ln-GC-TrainCert-Professional-Certification-Challenge-Korea-Registration-2023.html

 

클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services

 

aws.amazon.com

 

많은 사람들이 현장 시험을 추천하는데, 제가 계획한 시험 일정으로는 현장시험 일정이 존재하지 않아 어쩔 수 없이 온라인을 통하여 시험을 진행하였습니다.

시험을 신청하실 때, 한국인의 경우 추가 30분을 더 받을 수 있으므로 신청하시는 것을 권장드립니다.

한국어로 신청하여도 영어지문을 확인할 수 있으며, 몇몇 문제의 경우 번역이 매끄럽지 않아 영어지문으로 보는 것이 이해가 잘 되는 경우가 있습니다.

 

안내에 따라 시험을 신청하고 예약을 하고나면, 웹캠과 마이크가 가능한 컴퓨터를 통하여 시험환경을 검사한 뒤에, 온라인 시험을 진행하게 됩니다.

이때 주의하실 점은 시험에서 요구하는 시험환경이 있는데, 준비가 안되어 있으면 외국인 감독관이 환경을 정리하도록 지시를 하게됩니다.

저는 미약한 영어듣기 능력으로 인해 다소 고통받았는데(안경닦이랑 EarBuds 단어를 못알아들어서... ㅠ.ㅠ) 지시받았던 내용은 모니터 아래를 깨끗하게 정리하는 것과, 시험보는 환경에 손이 닿지않는 곳에 물건들을 치우는 것, 그리고 양 손에 스마트워치 등 장비를 차고있는지 검사하기 위해 팔을 보여주는 것 등이 있었습니다.(팔 확인은 검사 시작과 종료, 총 2번에 걸쳐서 실시하였습니다)

또 시험 진행 중에 외부에서 소리가 들리거나 대답을 하게되면 결격사유라는 조항이 있으므로 이에 유의하시길 바랍니다.


시험이 끝나면 최대 5일안에 구글 메일을 통하여 합격여부 통지를 받게 됩니다.

저는 4시간 뒤에 받았는데, 다른 후기에서 바로 메일이 날라온다고 해서 여기저기 찾아보다가 무언가 잘못됬나 싶어서 마음을 비우고 다음 시험이나 준비해야지 하고 편하게 놀고있었는데 메일을 받았습니다.

 

메일에는 자격 인증 배지를 등록할 수 있는 링크가 주어지고, 합격자들은 해당 배지를 블로그나 프로필등에 개시할 수 있는 권한을 얻게 됩니다.

https://www.credly.com/badges/e64e60b1-2ff7-4452-97e1-6bd047fdf0fe


보통 1년의 AWS 활용 경력과, 3개월~6개월정도의 준비기간을 추천합니다.

내용이 짧지 않고 디테일하게 나오는 경우도 있어서 여유를 가지고 준비하시는 것이 좋을 것 같습니다.

저도 처음 계획은 짧은 시간동안 집중하여 2주정도 강의 듣고, 기출 문제를 푼 뒤에 시험을 보는 것이었는데, 강의듣고 기출을 풀었을 때 시험 점수가 잘 나오지 않아 조금 더 여유를 갖고 준비하여 시험을 응시하였습니다.

 

AWS Solutions Architect - Assosiate 시험을 준비하시는 분들에게 모두 좋은 결과 있으시길 바랍니다 :)

세컨드브레인 표지


https://product.kyobobook.co.kr/detail/S000201140661

 

세컨드 브레인 | 티아고 포르테 - 교보문고

세컨드 브레인 |

product.kyobobook.co.kr


독서기간 : 2023.10.10 ~ 2023.10.15
독서시간 : 10 Hour
평점 : ★★★★★ 
한줄평 : 디지털 시대에 꼭 필요한 개인지식관리 지침서

얼마 전에 유튜브에서 제텔카스텐이라는 지식관리 시스템을 접하였습니다.
메모를 원자 단위로 나누고, 연결하여 새로운 아이디어를 얻는 방법으로 정보를 잘 관리하는 방법을 이야기하는 내용이었는데, 관심이 생겨서 정보를 찾아보다보니 옵시디언과 세컨드브레인이라는 키워드에 도착하였습니다.

평소에 일기를 쓰거나 일정을 관리하고, 공부한 내용을 정리하고 노트를 디지털로 변환하고 클라우드에 연동하는 것에 관심이 많았는데, 옵시디언과 세컨드브레인이 개인지식관리에 관한 깊이있는 이야기가 많아 흥미있었던 주제와 연결되어 정말 재밌고 시간가는 줄 모르고 책을 읽었습니다.

전통적인 폴더구조와 십진분류법으로 정리된 자료들이 시간이 지나면서 점점 더 복잡해서 자료를 찾기 힘들어지고 그에따라 one note에서 컨플루언스, 노션, 굿노트까지 계속해서 더 나은 방법을 찾아 정보 대이사를 하는 것이 반복되어 점점 피로해지고 있었는데 세컨드브레인이 제시하는 메모를 바라보는 관점의 전환, 그리고 `실행`을  관점으로 자료를 정리하는 PARA 시스템을 도입하면서 이 문제들을 해결할 수 있었습니다.

기록하고 자료를 정리하는 것에 흥미가 있으신 분이라면 강력 추천드립니다.

Vue.js로 개발을 하기위해 환경세팅을 할 때, npm과 yarn을 사용할 일이 있었습니다.

둘 다 node.js 개발환경에 필요한 패키지를 관리하는 패키지매니저라는 것을 알고 있었는데, 어떤 차이점이 있는지, 그리고 두가지를 혼용하여 사용해도 왜 크게 문제가 없는지 궁금하여 각각의 특징과 차이점을 찾아보았습니다.

 

Yarn과 npm

Yarn과 npm은 둘 다 JavaScript 개발에서 종종 사용되는 패키지 매니저로, 프로젝트의 종속성을 관리하고 설치하는 데 사용됩니다. 이들은 개발자가 애플리케이션에 필요한 외부 라이브러리와 패키지를 쉽게 관리할 수 있게 해줍니다.

npm (Node Package Manager)

npm은 Node.js의 기본 패키지 매니저입니다. Node.js는 JavaScript 실행 환경이며, npm은 Node.js를 다운로드하고 설치할 때 자동으로 함께 설치됩니다. npm은 npm 레지스트리라는 저장소를 통해 수많은 패키지 생태계를 제공합니다. 이는 패키지를 설치, 게시, 관리하는 데 사용되는 명령 줄 도구입니다.


주요 기능:

  • 대규모 패키지 생태계: npm은 사용 가능한 수백만 개의 패키지를 보유하고 있어 프로젝트에서 쉽게 사용할 수 있습니다.
  • 버전 관리: npm은 패키지 버전을 지정하고 semantic versioning에 따라 종속성을 관리할 수 있습니다.
  • 스크립팅: npm에는 다양한 개발 작업을 정의하고 실행할 수 있는 내장된 태스크 러너가 포함되어 있습니다.
  • 협업: npm은 자체 패키지를 공유하고 게시할 수 있도록 해주어 다른 사람들이 해당 패키지를 사용할 수 있습니다.

Yarn

Yarn은 JavaScript 애플리케이션용으로 개발된 또 다른 인기 있는 패키지 매니저입니다. Facebook에서 npm의 한계와 성능 문제를 해결하기 위해 개발되었습니다. Yarn은 npm으로 설계된 패키지와 호환될 수 있도록 되어 있습니다.


주요 기능:

  • 성능: Yarn은 패키지 설치 및 종속성 해결 등에서 보다 빠르고 안정적입니다. 특히 대규모 프로젝트에서 성능상 이점이 있습니다.
  • 결정론적 설치: Yarn은 락파일(yarn.lock)을 사용하여 동일한 종속성 버전이 다른 기기에서도 일관되게 설치되도록 보장합니다.
  • 오프라인 모드: Yarn은 내장된 오프라인 캐싱을 가지고 있어 인터넷에 연결되지 않은 상태에서도 패키지를 설치할 수 있습니다.
  • 병렬 다운로드: Yarn은 패키지를 병렬로 가져오기 때문에 설치 과정을 크게 가속화할 수 있습니다.

Yarn과 npm의 차이점

  • 패키지 설치: Yarn은 결정론적 알고리즘과 락파일을 사용하여 일관된 설치를 보장하는 반면, npm은 package-lock.json 파일을 사용합니다. 이로 인해 설치된 종속성에 약간의 차이가 생길 수 있습니다.
  • 성능: 일반적으로 Yarn이 패키지 설치 및 종속성 해결과 같은 작업에서 더 빠르고 효율적입니다. 특히 대규모 프로젝트에서 그 이점이 큽니다.
  • 캐싱: Yarn은 내장된 캐싱 기능을 가지고 있어 인터넷 연결이 없는 상황에서도 패키지를 설치할 수 있으며, 다음 설치 과정을 가속화합니다. npm은 npm 버전 5부터 캐싱을 지원하지만 Yarn의 캐싱 기능만큼 고급화되지 않았습니다.
  • 사용자 인터페이스: Yarn은 npm에 비해 더 간결하고 사용자 친화적인 명령 줄 인터페이스를 제공합니다.

 

요약하면, Yarn과 npm은 JavaScript 프로젝트에서 종속성을 관리하는 데 사용되는 패키지 매니저입니다. Yarn은 npm의 성능 및 신뢰성 문제를 개선하기 위해 만들어졌지만, 두 패키지 매니저 모두 JavaScript 생태계에서 널리 사용됩니다. 선택은 주로 개인의 선호도와 프로젝트 요구 사항에 따라 달라집니다.

'IT > VS' 카테고리의 다른 글

[Java] StringBuilder VS BufferedWriter  (0) 2023.04.02
[Shell] $*과 $@의 차이  (0) 2022.07.30
[ VS]arguments VS parameter  (0) 2021.09.23

여러가지 버전의 윈도우

증상

* What went wrong:
Execution failed for task ':sonar'.
> org/sonar/batch/bootstrapper/EnvironmentInformation has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

젠킨스 파이프라인을 이용해 SonarQube 정적분석을 실행하려고 할 때, 위와같은 에러 메세지가 발생하였습니다.

원인

위 에러는 Java 실행환경이 클래스파일 버전을 52.0까지 지원하지만, 컴파일된 버전의 클래스 버전이 55버전이라 발생한 문제입니다. 

해결책

가장 간단한 해결책은 Java Runtime을 더 최신 버전으로 업데이트하는 것입니다. 이렇게 하면 최신 버전의 클래스 파일도 인식할 수 있게 됩니다. Oracle 또는 OpenJDK 웹 사이트에서 Java Development Kit (JDK)의 최신 버전을 다운로드하여 설치할 수 있습니다.

 

참고자료

Java 버전 업데이트: https://www.oracle.com/java/technologies/javase-jdk13-downloads.html

 

Download the Latest Java LTS Free

Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.

www.oracle.com

클래스 파일 버전 다운그레이드: https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javac.html#BABGBJCI

Gradle 설정: https://docs.gradle.org/current/userguide/java_plugin.html#sec:java_plugin_and_java_version

 

The Java Plugin

If a dependent project has changed in an ABI-compatible way (only its private API has changed), then Java compilation tasks will be up-to-date. This means that if project A depends on project B and a class in B is changed in an ABI-compatible way (typicall

docs.gradle.org

 

+ Recent posts