728x90 반응형 개발 관련 강의 정리79 [10분 테코톡] 아벨의 상태 패턴 정리 디자인 패턴은 왜 생겼을까? 과거에 시간이 지나면서 소프트웨어의 개발이 복잡해진다. 그래서 소프트웨어의 개발자들은 공통적으로 발생하는 문제에 대한 해결책을 찾기 위해 노력하게 된다. 그 노력의 결과물 중 하나가 바로 디자인 패턴 이다. 즉 디자인 패턴 이란 공통적으로 발생하는 문제에 대한 해결책을 재사용 가능한 형태로 정리한 것이다. 디자인 패턴의 효과 유지보수성, 확장성, 재사용성 등 향상 디자인 패턴의 3가지 종류 생성 패턴, 구조 패턴, 행동 패턴 행동 패턴이란? 객체들이 서로 상호작용하는 방법과 책임을 분산하는 방법에 대한 문제를 해결하는 패턴 상태 패턴이란? 객체의 내부 상태에 따라 객체의 동작이 달라지는 패턴 처음에는 위 설명이 와닿지 않을 수 있다. 그래서 호텔 시스템 예시를 들어보려 한다... 2023. 6. 3. [10분 테코톡] 케로의 예외처리 정리 1. 예외처리의 정의 프로그램 실행 시 발생할 수 있는 예외에 대비하는 것으로 프로그램 비정상종료를 맞고 실행 상태를 유지하는 것 2. 오류 vs 예외 오류는 외부 요인에 의해서 발생하는 것으로 심각한 오류이다. 한번 발생하면 이를 되돌릴 수 없고 이것을 개발자가 예측하기가 힘들다. 예를 들면 메모리가 부족해서 프로그램 자체를 못 돌리게 되는 그런 경우가 속할 수 있다. 예외(Exception)은 개발자의 로직에 의해서 발생한 예외이다. 에러보다는 덜 심각한 상황이고 대비 해주어야 한다. 3. 예외처리 하는 법 예외 던지기 - throw는 예외를 강제적으로 던져 준다. 개발자가 임의로 예외를 발생 시킬 때 사용하는 명령어이다. - 파라미터 안에 있는 메시지는 예외 메시지이다. - throws는 선언된 예.. 2023. 6. 2. [10분 테코톡] 마코의 JCF 정리 ● JCF? - Java Collections Framework - Collections : 데이터의 그룹 - Framework : 표준화된 프로그래밍 방식 - 자바에서 데이터 구조를 구현하고 관리하기 위한 클래스와 인터페이스의 모음 JCF를 쓰는 이유는? 크기가 4인 배열이 있을 때 새로운 데이터를 여기다가 추가하려고 한다면 어떤 상황이 발생할까? ArrayIndexOutOfBoundsException 이 발생하게 된다. 그래서 4보다 큰 배열을 하나 생성을 해서 여기에 하나씩 데이터를 복사해주어야 한다. 그리고 마지막에 원하는 데이터를 추가할 수 있다. 이처럼 배열을 사용하면 이러한 복잡한 과정을 다 고려하고 직접 구현해야 한다. 하지만 이런 것을 다 생각하면서 개발하기 어렵다. 그래서 이런 것들을 .. 2023. 6. 1. [10분 테코톡] 마루의 데이터베이스 Lock 정리 1. 데이터베이스에 잠금이 왜 필요할까? - 동시성 제어 위와같이 민트초코가 1개 남았고 동시에 접근을 한다고 가정한다. 동시에 접근을 한 두 명의 사용자는 재고 수량을 읽는다. 한 명의 사용자가 구매를 완료하고 재고를 업데이트 한다. 뒤늦게 다른 사용자가 구매를 완료하고 다시 재고를 업데이트시킨다. 업데이트를 아까 시켜줬는데 그 위에 덮어쓰기가 되었다. 남은 수량은 1개 였는데 두 사람 모두 주문이 완료된 상황이 발생하게 된것이다. 커머스 서비스에서 이러한 일이 일어난다면 치명적일 수 있다. 이런한 문제를 해결하기 위해서 동시성 제어가 필요하다. - 동시성 제어 : 트랜잭션들이 동시에 수행될 때, 일관성을 해치지 않도록 접근을 제어하는 DBMS의 기능 동시성 제어는 어떻게 할까? 바로 Lock을 이용한.. 2023. 5. 31. [10분 테코톡] 애쉬의 AWS 살짝 알은체 하기 정리 클라우드 컴퓨팅이란? 인터넷을 통해 연결된 원격 컴퓨터를 활용하는 기술 개인 PC가 있는데 왜 클라우드 컴퓨팅을 이용해야 될까? - 언제 어디서나 성능이 좋은 컴퓨터를 이용할 수 있다. - 사용한 만큼만 비용을 지불하면 된다. - 몇 분 만에 전 세계에 서비스를 배포할 수 있다. AWS EC2 (Amazon Elastic Compute Cloud) Elastic이라는 용어가 크기 조정이 가능하다는 뜻으로 쓰이는데 EC2는 컴퓨터 한 대를 빌려준다고 생각하면 쉽다. 리전(Region) - AWS가 전 세계의 각 데이터센터를 클러스터링 하는(묶은) 물리적 위치 AWS는 데이터센터가 전 세계에 여러 대 존재한다. 이를 물리적위치로 묶은 것을 리전이라고 한다. (서울 리전은 2016년에 개설되었다.) 가용 영역.. 2023. 5. 29. [10분 테코톡] 릭의 MySQL 아키텍처 정리 MySQL이라고 부르는 것은 MySQL 서버라고 부를 수 있다. 서버 안에는 두뇌의 역할을 하는 MySQL 엔진이 있고 여러 개의 손발의 역할을 담당하는 스토리지 엔진으로 구성이 되어 있다. 이 두뇌의 역할을 하는 MySQL 엔진과 스토리지 엔진은 핸들러 API를 통해서 서로 통신을 주고 받는다. 쿼리의 실행 과정을 통해서 MySQL 아키텍처를 살펴보자 위와 같이 두 개의 테이블을 준비했고 하나의 article 테이블이 members의 아이디를 외래키로 참조하는 형태이다. article 테이블에서 릭으로 시작하는 콘텐츠를 모두 검색하고 작성자의 이름을 가져오기 위해서 members 테이블에 조인을 하는 형태의 쿼리를 날리는 실행 과정을 통해 알아보자 사용자가 쿼리를 날리게 되면 쿼리 파서가 먼저 요청을 .. 2023. 5. 28. [코딩애플] 데이터 정규화가 뭔지 설명해보세요 (개발면접타임) 정리 제1 정규형 / 제1 정규화 위와같이 회원들이 프로그램을 신청을 하였다고 가정한다. 김민수라는 사람이 골프 초급이라는 프로그램을 또 수강신청을 했다면 아래와 같이 표현할 수 있다. 위와같이 표현하면 단점이 생긴다. 1) 골프초급 수강신청한 사람 찾기 귀찮아진다. 골프초급을 찾을 때 WHERE 프로그램 = '골프초급' 이 아닌 WHERE 프로그램 LIKE '%골프초급%' 을 사용하는 등 귀찮아질 수 있다. 성능이 저항될 수도 있다. 2) 프로그램명 수정의 어려움 그래서 위와 같이 하나의 칸 안에는 하나의 데이터만 보관을 한다. 이것을 제1정규화라고 한다. 이처럼 작업이 완료된 테이블을 제1 정규형을 만족하는 테이블이라 부른다. 제2정규형 / 제2정규화 헬스를 신청한 회원 수가 1000명이라 가정하고 헬스 .. 2023. 5. 27. [10분 테코톡] 에덴의 서버 네트워크 정리 IP (Internet Protocol) 인터넷 상에서 하나의 컴퓨터에서 다른 컴퓨터로 데이터를 보낼 때의 통신 프로토콜 이 프로토콜을 이용할 때 필요한 것이 IP 어드레스이다. IP address 인터넷 프로토콜이 네트워크 통신을 위해 사용하는 네트워크 주소 간단하게 컴퓨터의 고유한 주소라고 이해하시면 쉽다. IP는 3계층인 네트워크 계층에서 동작하며 퍼블릭 IP와 프라이빗 IP가 있다. Public IP 외부 네트워크와 통신을 하기 위해서 사용되는 고유한 주소 (IP는 32bit로 이루어져 있어서 총 43억개정도 되며 한국은 약 1억개의 퍼블릭 IP를 할당을 받았다.) 1) Dynamic IP : 계속 바뀔 수 있는 Public IP - 공유기, Instance 등을 껐다가 키는 경우 - 오래도록 사.. 2023. 5. 26. 이전 1 ··· 3 4 5 6 7 8 9 10 다음 728x90 반응형