전체 446

[웹] 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

[Spring] Spring AOP (Aspect-Oriented Programming)

정의 AOP는 핵심 관심사(core concerns)에서 공통 관심사(cross-cutting concerns)를 분리시키는 프로그래밍 기법으로, 공통 관심사를 추상화하고 캡슐화합니다. 공통 관심사 (Cross-cutting concerns) 공통 관심사는 로깅, 검증, 트랜잭션, 시간측정과 같이, 서로 다른 메서드들에 공통적으로 반복되고, 모듈 자체에서 완전한 리팩토링할 수 없는 코드를 의미합니다. AOP 주요 개념 Aspect - 모듈화한 공통 관심사 Join point - 프로그램 실행 중 한 시점, Spring AOP에서는 메서드 실행 pointcut - join point을 식별 Advice - pointcut에 의해 선택된 join point에 실행할 코드, cross-cutting conce..

[웹] 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

[백준][그리디] 저울

BAEKJOON Online Judge(BOJ) 문제입니다. https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 문제 https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 내가 작성한 코드 import sys read = sys.stdin.readline def read_data(): N = int(..

코딩테스트 2022.04.17

[자료구조] Array와 LinkedList의 삽입/삭제 (feat. ArrayList vs LinkedList)

1. Array vs LinkedList 정의 Array와 LinkedList는 모두 연속된 데이터 집합을 위한 기본 자료구조입니다. 차이 Array와 LinkedList의 가장 큰 차이는 메모리 할당 방식입니다. Array Array는 연속적인 주소 할당으로, 주소를 이용하면 모든 데이터의 접근 시간이 동일한 Random Access가 가능하여 데이터 탐색이 빠를 수 있습니다(O(1)). 그러나 데이터 삽입/삭제에서 이 연속성을 지키기 위해 데이터를 움직이는 비용(O(n))이 발생하고, 크기가 고정되야하기 때문에 Dynamic Array의 경우 데이터 삽입 중 크기가 큰 Array로 copy하는 비용(Amortized O(1))이 발생할 수 있습니다. LinkedList LinkedList는 원소마다 ..

고민하기 2022.04.16

[Daily Report] 22.04.15 - Bertie 번역 API 변경

Memo Bertie 수정 l 번역 API - [변경] Naver API에서 Kakao API로 변경 - [사유] Kakao 지원 언어가 더 많음 (Naver 13개 -> Kakao 19개) New restTemplate l getForEntity - [문제] restTemplate에서 GET 메소드로 요청을 보낼 때, HttpHeaders를 사용할 수 없음 - [해결] restTemplate.exchange()로 사용 l 객체로 response 받아올 때 - 정의한 객체의 constructor 필수 - 정의한 객체의 getter/setter 필수 - List를 가져올 경우 Wrapper class 가능 - List를 가져올 경우 constructor에 List 인스턴스 생성하기 l WebConfig를 ..

정리하기/DR 2022.04.15

[운영체제] 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

[백준][투포인터] 냅색문제

BAEKJOON Online Judge(BOJ) 문제입니다. https://www.acmicpc.net/ Baekjoon Online Judge Baekjoon Online Judge 프로그래밍 문제를 풀고 온라인으로 채점받을 수 있는 곳입니다. www.acmicpc.net 문제 https://www.acmicpc.net/problem/1450 1450번: 냅색문제 첫째 줄에 N과 C가 주어진다. N은 30보다 작거나 같은 자연수, C는 109보다 작거나 같은 음이 아닌 정수이다. 둘째 줄에 물건의 무게가 주어진다. 무게도 109보다 작거나 같은 자연수이다. www.acmicpc.net 내가 작성한 코드 import sys from bisect import bisect_right from itertool..

코딩테스트 2022.04.08

[Github] Git Stash

1. 상황 IntelliJ로 코드를 수정하는 것과, 같은 remote repository의 README를 웹으로 수정하는 것을 동시에 수행하면서, IntelliJ에서 작성한 local 내용을 push할 때 충돌이 발생하였습니다. README의 변경이 있으니 remote repository의 최신 상태를 git pull로 local에 업데이트 한 후, 변경 사항을 push해야했습니다. 그런데 git pull을 하는 과정에서 아래와 같은 문제가 발생하였습니다. 2. 문제 에러 내용은 다음과 같습니다. error: Your local changes to the following files would be overwritten by merge: src/main/resources/data.sql data.sql은..

툴/Github 2022.04.08