CS 51

[개발론][테스트] Mock

정의 테스트를 위해 의존하는 객체를 가짜로 만들어 사용하는 방법 필요한 이유 단위테스트에서 실행하는 메서드가 다른 네트워크, 데이터베이스 등 복잡한 의존성을 가진 경우 사용하는 경우 테스트 환경 구축이 어려운 경우 - 데이터베이스 설치, 서버 구성 특정 경우에 의존적인 경우 - 수많은 테스트 중에 하나의 테스트만 네트워크/데이터베이스를 통한 결과가 필요 테스트 시간이 오래 걸리는 경우 기본 분류 테스트 더블 - 테스트 진행이 어려울 때 대신 진행할 수 있도록 만들어주는 객체 - Mock 객체와 유사하며 더 상위 의미 더미 객체 - 단순하게 인스턴스화되는 수준으로만 객체를 구현 - 인스턴스가 필요할 뿐, 객체 기능은 필요하지 않는 경우 사용 테스트 스텁 (Test Stub) - 더미 객체가 실제 동작하는 ..

CS/개발론 2022.05.10

[웹] PG(Payment Gateway)

PG란 정의 지불 정보를 가져오고 이를 판매자에게 전송하며 승인/거절을 report 구매자와 판매자의 interface 온라인 결제 대행 서비스 기능 돈 지불이 가능한지 확인 민감한 financial 정보를 암호화 PG 동작 주문자가 카드 정보를 입력 SSL encryption으로 카드 정보를 암호화 / Gateway는 PCI DSS를 불필요하게 함 online payment gateway에 지불 정보를 전달 (SSL encryption으로 암호화된 데이터) gateway는 수신한 데이터를 XML에서 ISO 8583으로 변환하여 인수은행의 결제처리자로 보냄 결제처리자는 카드정보로 데이터를 제출 은행은 승인 요청을 받고 카드를 확인하여, 응답 코드를 결제처리자에 전송 결제처리자는 payment gatewa..

CS/웹 2022.05.05

[운영체제] KOCW 반효경 교수님 강의 - 11. Process Synchronization 1

Race Condition 보통 데이터를 읽으면 -> 연산 처리를 마치고 -> 다시 데이터를 저장 그런데 연산을 처리하는 동안 그 값을 다른 누군가 가져가서 다른 연산 -> 문제가 발생할 수 있음 이렇게 데이터에 동시에 접근하여 문제를 발생시킬 수 있는 상황을 race condition이라고 함 Race condition이 발생하는 환경 Race condition이 발생할 것 같지 않음 CPU가 1개면 메모리 접근을 혼자서 함 프로세스는 자신의 메모리 영역만 접근 CPU가 여러 개인 시스템 메모리에서 한 CPU가 데이터를 가져가서 처리중 다른 CPU가 그 데이터(메모리)에 접근하여 다른 연산 처리 공유 메모리 (커널 데이터) 한 프로세스가 시스템 콜을 호출하여 커널모드에서 동작 커널모드에서 동작한다는 것..

CS/운영체제 2022.05.03

[웹] Spring - NodeJS - Django

1. Django Python 프레임워크 Instagram, Mozilla, Bitbucket 특징 Documentation이 잘되어있음 SEO 최적화 높은 보안 빠른 개발 환경 높은 확장성 장점 관계형 DB와의 연동성(seamless collaboration) built-in security system 빠른 웹/앱 개발 내장 템플릿 Documentation 단점 Monolithic small app에서 잘 동작하지 않음 언어에 대한 전문 지식 필요 2. NodeJS Open source Cross-platform Javascript Runtime Environment Javascript로 client/server 구현 Javascript로 browswer 밖에서 앱 구현 프로그래밍 언어가 아닌 JS로..

CS/웹 2022.04.19

[웹] JEE (Jakarta Enterprise Edition)

JEE(Jakarta Enterprise Edition)는 오라클의 JEE(Java Enterprise Edition)의 소스코드와 거버넌스를 이클립스재단으로 이관하면서, 자바 명칭을 사용할 권리를 주지 않아 변경된 이름입니다. Java EE Java EE는 많은 종류의 엔터프라이즈 Java application과, Spring과 같은 많은 프레임워크에서 널리 사용되는 프로젝트였습니다. 초기 썬 마이크로시스템즈가 분산 애플리케이션 개발 목적의 산업 표준 플랫폼인 J2EE(Java 2 Enterprise Edition)로 발표하였습니다. 기업용 애플리케이션을 개발/실행하기 위한 기술과 환경을 제공하며 서블릿, JSP, EJB, JDBC, JDNI, JMX, JTA 등의 알려진 기술을 포함합니다. 주요 목적..

CS/웹 2022.04.19

[웹] SEO란

정의 Search Engine Optimization 웹사이트가 검색 결과에 더 잘보이도록 최적화하는 과정 검색 엔진은 크롤링을 통해 페이지 -> 페이지 링크를 따라가며 컨텐츠 색인을 생성 이 때 크롤링은 일정 규칙을 따르므로, 이 규칙에 맞게 웹사이트를 구성하면 검색 결과의 높은 곳에 노출 검색 엔진은 SEO 가이드라인을 제공하기도 함 웹마스터 가이드 검색엔진이 콘텐츠를 발견하고 색인할 수 있도록 도움을 주는 가이드 구글 네이버 웹마스터 가이드 예시 robots.txt에서 User-agent를 설정하여 검색로봇 접근 허용 간단하고 설명이 포함된 URL 를 이용한 링크 설정 를 활용한 줄바꿈 이미지에 alt 속성 기재 등등... https://developer.mozilla.org/ko/docs/Glos..

CS/웹 2022.04.18

[운영체제] KOCW 반효경 교수님 강의 - 11. CPU Scheduling 2

CPU 스케줄링이 필요한 이유 CPU bound job과 I/O bound job이 섞여있음 RR이 적절한 스케줄링 (I/O bound job이 빠르게 나갈 수 있음) 효율적인 RR이 가능한 이유는 Context를 저장하고 복구할 수 있는 Context Switching이 가능하기 때문 Multilevel Queue 컨셉 지금까지는 한 줄에서 기다리는 경우, multilevel queue는 여러 줄로 기다리는 경우 우선순위에 따라 우선순위가 높은 큐의 job을 먼저 실행 고민해볼 문제 1. 큐 내에서 어떤 프로세스에게 할당? 2. 우선순위 높은 큐에 무조건 할당? -> starvation Multilevel Queue Ready queue를 여러 개로 분할 각 큐는 독립적인 스케줄링 알고리즘을 가짐 fo..

CS/운영체제 2022.04.12

[인프런][HTTP] URI와 웹 브라우저 요청 흐름

https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런... www.inflearn.com URI 웹 브라우저 요청 흐름 URI(Uniform Resource Identifier) 리소스를 식별하는 통합된 방법 URI는 로케이터(Locator), 이름(Name) 또는 둘 다 추가로 분류될 수 있음 URL(Locator) - 리소스의 위치 URN(Name) - 이름 - 그저 이름이기 때문에 위치를 찾을 수가 없음 - 이로 인해 거의 URL..

CS/웹 2022.04.07

[운영체제] KOCW 반효경 교수님 강의 - 10. CPU Scheduling 1

CPU 스케줄링에서 중요한 2가지 이슈 CPU bust에 들어온 여러 프로세스들 중 누구에게 CPU를 줄것인가? CPU를 할당한 후에 점유한 프로세스가 CPU를 계속 사용하도록 둘 것인가 뺏을 것인가? CPU를 뺏지 않는 경우 CPU bound job이 CPU를 할당하면 CPU를 잠깐 사용하고 반납할 I/O bound job들이 긴 시간 동안 줄서서 기다려야함 CPU 스케줄링의 종류 1. Non-preemptive 스케줄링 CPU를 가진 프로세스가 자진 반납할 때까지 CPU를 점유 비선점형 2. Preemptive 스케줄링 현대 스케줄링 방식 강제로 CPU를 가져올 수 있는 방식 선점형 좋은 스케줄링 평가 (성능 척도, Performe-ance Idex, Performeance Measure) 1. 시스..

CS/운영체제 2022.04.06

[MySQL] 데이터 복원

1. 상황 MySQL에서 mysqldump를 복원하던 중 Access Denied가 발생하였습니다. 2. 해결 복원 명령은 다음과 같습니다. >> mysql -u[id] -p [database] < [dump] 위 명령 입력시 -u[id]가 붙어있다는 점과 대소문자를 구분한다는 점에서 발생한 에러였습니다. MySQL은 table과 db에 접근할 때도 대소문자 구분에 주의가 필요합니다. https://m.blog.naver.com/rhrkdfus/221535739080 [Database] Windows에서 MySQL DB 백업하기 * 목차 1. 백업할 데이터베이스 확인하기 2. cmd 창에서 MySQL 경로로 이동 3. Database 백업하기 4. ... blog.naver.com https://zeta..

CS/MySQL 2022.04.04