분류 전체보기 (93) 썸네일형 리스트형 확장 함수 기존에 정의된 클래스에 함수를 추가하는 기능 fun 클래스이름.함수이름(파라미터): 리턴타입 { 구현부 } 클래스 밖에 선언되기 때문에 오버라이딩을 할 수가 없음 실제 동작은 static 메소드로 만들어져 사용됨 클래스의 private, protected 멤버에 접근 불가 과연 가독성이 좋을까? https://codechacha.com/ko/kotlin-extension-functions/ Kotlin - 확장 함수(Extension functions)에 대해서 알아보기 Extension functions는 기존에 정의된 클래스에 함수를 추가하는 기능입니다. 자신의 함수는 쉽게 추가가 가능하지만 다른 살마이 만든 라이브러리를 갖다 쓸때는 매우 어렵습니다. 코틀린은 이런 것 codechacha.com ht.. open class 자바와 다르게 코틀린의 모든 클래스와 메소드는 기본적으로 final 어떤 클래스의 상속을 허용하려면 클래스 앞에 open 변경자를 붙여야 함 오버라이드를 허용하고 싶은 메소드 앞에도 open 변경자를 붙여야 함 abstract class와는 달리 인스턴스화가 가능하다. [참조] https://jaeyeong951.medium.com/kotlin-class-%EC%82%AC%EC%9A%A9%EB%B2%95-24ee79062a96 [kotlin] class 사용법 평소 Java만 사용하다 kotlin을 사용하려 하니 헷갈리는 부분이 많아서 정리해두려고한다. jaeyeong951.medium.com sealed class 자신은 추상 클래스이고, 자신을 상속 받는 서브 클래스를 가질 수 있음 enum과 달리 상속을 지원하고, 서브클래스들이 다른 속성을 가질 수 있음 자신을 상속받는 서브 클래스의 종류를 제한할 수 있음 sealed 클래스와 서브 클래스는 같은 파일 내에 선언되어야 함 (sealed 클래스의 서브 클래스를 상속한 클래스는 같은 파일내에 없어도 됨) private 생성자만 가짐 [참조] https://velog.io/@haero_kim/Kotlin-Sealed-Class-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0 [Kotlin] Sealed Class 알아보기 Enum Class 의 확장판, Sealed Class 의 개념 velog.io Infrastructure as Code 인프라를 수동 구성하거나 기존 구성 도구를 사용하는 대신 선언적 또는 스크립팅된 코드를 통해 관리하고 프로비저닝 하는 것 인프라 구성을 쉽게 편집하고 배포할 수 있으며 매번 동일한 환경을 일관되게 프로비저닝 할 수 있음 장점 일관성 - 수동 구성 중에 발생할 수 있는 오류를 줄일 수 있음 - 문서화되지 않은 임시 구성 변경을 방지하는데 도움을 줌 비용절감 - 수동 하드웨어 구성이나 업데이트가 필요하지 않음 - 동일한 코드로 수백, 수천대의 동일한 인프라를 구축하고 관리할 수 있음 효율성 - 시스템 구성, 유지 보수 및 관리가 간소화 - 반복 가능하고 확장 가능한 탄력적인 인프라 구축 속도 - 프로비저닝 작업을 간단한 작업으로 전환하여 인프라 준비 위험 감소 - 코드로 구성하면 버전 관리를 할 수 있음 프.. MSA 테스트 자동화 테스트란? - 소프트웨어의 결함이 있는 부분을 찾아내는 과정 - 테스트에서 밝혀내야하는 결함이란 오류뿐 아니라 설계와 다르게 동작하는 것, 의도되지 않은대로 동작하는 것을 포함 테스트 종류 - 유닛 테스트 : 단위 기능 테스트 - 서비스 테스트 : 각 모듈(MSA로 분리된 각 Service)의 외부로 공개한 API를 대상으로 한 테스트 - 통합 테스트 : MSA로 분리된 전체 모듈을 연동하여 테스트 - 시스템 테스트 : 실 서비스에 준하는 상황으로 테스트 테스트 자동화를 해야 하는 이유 - 운영중인 서비스에 추가, 변경 사항이 생길 경우 사이드 이펙트를 모두 파악하기 어려움 - 코드 리팩토링, 라이브러리 업그레이드 등을 진행한 뒤에도 기존 기능에 영향이 없는지 확인이 필요함 - 코드 변경이 생기는 경우에.. ThreadLocal ThreadLocal 클래스는 thread-local 변수를 제공thread-local 변수 - 스레드 내부에서 사용하는 지역 변수(각 스레드에서 별도의 변수처럼 사용할 수 있음) - get, set 메소드를 통해 값을 가져오고 세팅함 - 스레드가 종료되기 전까지 변수를 사용할 수 있음 - 스레드 풀을 통해 스레드를 재사용 하는 경우 이전에 사용했던 값을 공유할 수 있음 ThreadLocal 사용 시 주의점 - ThreadLocal 변수 선언시 static으로 선언 해야 함 [참조]https://velog.io/@skygl/ThreadLocalhttps://devonce.tistory.com/25 OWASP Top 10 2020 OWASP(The Open Web Application Security Project) - 오픈 소스 웹 애플리케이션 보안 프로젝트 - 웹 애플리케이션 취약점 중에서 빈도가 높고 보안상 영향을 크게 줄 수 있는 것들 10가지를 선정하여 3년 주기로 발표 A1. Injection (인젝션) - SQL, OS, XXE(Xml eXternal Entity), LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로써, 인터프리터로 보내질 때 발생 - 공격자의 악의적인 데이터는 예상하지 못하는 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있음대응방안 - 서버 측 입력 검증, 특수 문자 필터링 및 유효성 검사 - 화이트 리스트 조합 사용 A2. Broken A.. 디자인 패턴과 프레임워크 디자인 패턴 - 소프트웨어 설계에서 반복적으로 발생하는 문제에 대해 반복적으로 적용할 수 있는 해결 방법 - 특정한 변경을 일관성 있게 다룰 수 있는 협력 템플릿을 제공프레임워크 - 설계와 코드를 함께 재사용하기 위한 것 - 특정한 변경을 일관성 있게 다룰 수 있는 확장 가능한 코드 템플릿을 제공 디자인 패턴과 설계 재사용소프트웨어 패턴 - 반복적으로 발생하는 문제와 해법의 쌍으로 정의 - 이미 알려진 문제와 이에 대한 해법을 문서로 정리할 수 있으며, 이 지식을 다른 사람과 의사 소통 할 수 있음 - 추상적인 원칙과 실제 코드 작성 사이의 간극을 메워주며 실질적인 코드 작성을 도움 - 패턴은 실무에서 탄생함 - 하나의 실무 컨텍스트에서 유용한 동시에 다른 실무 컨텍스트에서도 유용할 것이라고 예상되는 아.. 이전 1 2 3 4 ··· 12 다음