728x90 반응형 개발 관련 강의 정리79 [10분 테코톡] 클레이의 상속과 조합 정리 상속? - 기존에 정의되어 있는 클래스의 필드와 메소드를 물려받아 새로운 클래스를 생성하는 기법 - 중복코드 제거와 기능 확장을 쉽게 할 수 있다. - 클래스들의 계층적인 구조를 만들 수 있다. 상속의 대표적인 문제점 하위 클래스가 상위 클래스의 구현에 의존하기 때문에 변경에 취약하다. 상위 클래스릐 모든 퍼블릭 메서드가 하위 클래스에도 반드시 노출된다. 취약한 기반 클래스 문제 예시 class Lotto { protected LottoNumber[] numbers; public Lotto(LottoNumber[] numbers) { this.numbers = numbers; } public boolean contains(LottoNumber lottoNumber) { return Stream.of(nu.. 2023. 5. 25. [10분 테코톡] 아서의 싱글턴 패턴과 정적 클래스 정리 프로그램 전역에서 사용되는 유일한 클래스를 만드는 것은 두 가지 방법 1) 싱글턴 패턴 이용 2) 정적클래스 이용 싱글턴 패턴이 뭐지? - 객체 인스턴스가 오로지 한 개만 생성 되도록 설계하는 패턴 (애플리케이션 내에서 인스턴스가 유일해야 한다.) When? 로그 기록, 캐싱, 사용자 설정 등 Why? 유일성, 글로벌 싱들턴 패턴을 만들어보자 문제 상황 애플리케이션의 배경 색깔을 정할 수 있는 Settings 클래스가 있다고 가정한다. 배경은 애플리케이션에서 한 개만 있어야 된다. 환경 설정을 바꿀 수 있는 인스턴스가 두 개 존재한다면 에러가 나올 것이다. Settings settings1 = new Settings(); Settings settings2 = new Settings(); System.ou.. 2023. 5. 24. [10분 테코톡] 글렌의 전략 패턴 정리 전략 패턴의 사전적 의미 - 23가지 GoF디자인 패턴 중 하나 - 알고리즘 군을 정의하여 알로리즘을 캡슐화한 뒤 필요할 때 교환해서 사용 전략 : 전쟁, 정치, 사업, 산업 등과 같은 상황에서 성공을 달성할기 위한 상세한 계획 또는 그러한 상황에 대한 기술 전술 : 전략을 짜면서 정한 목표를 달성하기 위한 행동 프로그래밍에서의 전략과 전술 프로그램의 목적은 문제를 해결하는 것 문제를 해결하기 위한 큰 틀을 설계(계획) => 전략 알고리즘으로 문제를 해결(행동) => 전술 MySQL을 사용해서 간단한 프로그램을 만든다고 가정해보자 아래와 같이 4줄짜리 코드가 있다. public static void main(String[] args) { MySqlDb mySqlDb = new MySqlDb(); mySq.. 2023. 5. 23. [10분 테코톡] 포키의 Parameter와 Argument 정리 Parameter (매개변수) 함수 등 서브루틴의 input으로 제공되는 여러 데이터 중 하나를 가리키기 위해 사용되는 변수의 한 종류 * 서브루틴 : 하나 이상의 장소에서 필요할 때마다 반복해서 사용할 수 있는 부분적 프로그램 나눗셈 연산을 하는 서브루틴이 있다고 가정하고 2와 4라는 두 값을 넣어줬을 때 연산 결과가 2가 될지 0.5가 될지 알 수 없다. 위와 같이 2를 제수 그리고 4를 피제수로 정의해주면 이 연산의 결과가 2가 될 것이라는 것을 알 수 있다. * 제수 : 나누는 수 * 피제수 : 나누어 지는 수 여러 데이터 중 하나를 가리킨다는 말은 각각의 값이 어떻게 사용되어야 할지 명확하게 해준다는 것을 의미한다. 다시 말하면 해당 값이 함수 내에서 어떤 역할을 할지 그 역할에 대한 정의이다... 2023. 5. 22. [10분 테코톡] 이프의 성능 테스트 정리 응답 대기 시간 줄이기 위해서 어떻게 해야할까? 위와같이 사용자가 리퀘스트를 보냈고 리스폰스를 받는 과정속에서 사용자는 단순하게 서버한테 '나는 이때 줬는데 왜 이제서야 주냐? 너 왜 이렇게 나태하냐' 라고 한다면 서버는 할 말이 있다. 실제 인프라 내부에서는 위와같이 뒤에서 많은 요청과 처리과정이 있다. 첫번째 서버의 경우 서버2 한테 리퀘스트를 보내고 리스폰스 받을 때까지의 대기 시간이 존재한다. 대기시간을 받은 이후에 실제로 처리를 하고 다시 대기하고 다시 처리하게된다. 이 전체 프로세스 과정의 절반 이상이 대기 하느라 소요된 시간이고, 그 대기한 시간은 다른 구성요소들(서버2, DB)이 처리시간을 차지하고 있다. 대기시간을 제외한 실제 처리하는 시간이 해당 구성 요소가 차지하는 처리 시간이며 이 .. 2023. 5. 21. [10분 테코톡] 부나의 Java에서 Kotlin으로 정리 Kotlin 등장 - IntelliJ를 만든 회사(JetBrains)에서 Kotlin을 만들기 시작 - 2011년 처음 개발이 시작됐고 2016년에 어느 정도 안정된 버전인 코틀린 1.0버전이 출시 - 구글IO 에서 2017년에 안드로이드 공식언어로 지정 후, 인기 폭발 Kotlin 개발이유가 JetBrains의 제품 70%는 Java로 나머지 30%가 마이크로소프트의 C#으로 대부분 이루어져 있었다. Java는 객체지향 언어의 선두자로 불릴 만큼 강력한 언어로 불리고 있지만, 이들이 봤을 때 Java는 유지보수 하기에 골칫거리인 언어로 생각되었다. 그 이유는 객체를 생성 할 때도 new라는 키워드를 붙여주고 세미콜론을 붙여주는 등 굳이 꼭 필요할까 라는 문법들도 있었고 단순한 기능을 구현함에 있어서도 .. 2023. 5. 20. [10분 깃코톡] 🍟 웨지의 Git 브랜치 전략 정리 브랜치 전략 git branch management strategy ● 여러 개발자가 협업하는 환경에서 git저장소를 효과적으로 활용하기 위한 work-flow ● 브랜치의 생성, 삭제 병합이 자유로운 git의 우연한 구조를 활용하여 다양한 방식으로 소스관리를 할 수 있다! 브랜치 전략이 없다면? 어느 브랜치가 최신이지? 급하게 수정 후 배포할 일이 생겼는데, 어떤 브랜치를 기준으로 수정해야 할까? 배포버전은? 자주 쓰이는 브랜치 전략 1) git-flow : 5가지의 브랜치를 이용해 운영하는 브랜치 전략 2) github-flow : master 브랜치와 Pull Request를 활용한 단순한 브랜치 전략 git-flow ● 항상 유지되는 2개의 메인 브랜치와 역할을 완료하면 사라지는 3개의 보조 브랜.. 2023. 5. 19. [10분 테코톡] 결의 브라우저 렌더링 정리 브라우저란? html 문서, 이미지, 폰트 등 사용자가 선택한 자원을 전송 및 표현하는 소프트웨어 ex) 우리가 인터넷에 접속하기 위해 쓰는 크롬, 파이어폭스, IE, 사파리 등 브라우저는 HTML과 CSS 명세에 따라 HTML을 표시하는데 HTML과 CSS는 웹 표준에 따라 명세가 정해진다. 웹 표준은 팀 버너스리를 중심으로 월드 와이드 웹을 위한 표준을 개발하고 장려하는 조직, W3C에 의해 개발되었다. 웹 표준 도입전, 웹 초장기에는 웹브라우저의 파편화 현상이 심해서 웹페이지를 렌더링할 때 브라우저 별로 뷰가 달라지거나 웹 API 활용 값이 상이한 문제가 발생했다. 2019년이 되어서야 W3C와 WHATWG가 합의해서 HTML을 하나의 버전으로 통합하였다. 브라우저 기본 구조 - 사용자 인터페이스 .. 2023. 5. 18. 이전 1 ··· 4 5 6 7 8 9 10 다음 728x90 반응형