분류 전체보기 127

API vs LIbrary vs Framework

API(Application programming interface) 응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 특징 구현과 독립적으로 사양만 정의되어있다 API에 따라 접근 권한이 필요할 수 있다 Java API, 여러 기업들의 오픈 API Library 응용 프로그램 개발을 위해 필요한 기능(함수)을 모아 놓은 소프트웨어 특징 독립성을 가진다 응용 프로그램이 능동적으로 라이브러리를 사용한다. Apache Commons, Guava, Lombok, jQuery Framework 응용 프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기위해 제공된 소프트웨어 환경 특징 상호협력하는 클래스와 인터페이스의 집합 응용 프로그램이 수동적으로 프레임워크에 의해..

Back-end/ETC 2021.05.07

TCP/ UDP

주목! TCP, UDP의 특성을 파악하고 상황에 따라 적절한 프로토콜을 사용할 수 있다 TCP, UDP의 헤더에 대해 파악하고 성는 개선에 이용할 수 있다 Transport Layer end point간 신뢰성있는 데이터 전송을 담당하는 계층 *신뢰성 : 데이터 순차적, 안정적인 전달 *전송 : 포트 번호에 해당하는 프로세스에 데이터를 전달 if? 전송계층이 없다면 - 데이터 순차 전송 X : 123 -> 231 - 흐름문제(송수신자 간의 데이터 처리 속도 차이) : 수신자가 처리할수 있는 데이터량을 초과 -혼잡 문제(네트워크의 데이터 처리 속도) : 네트워크가 혼잡 할때 -> 데이터의 손실 방생 TCP(Transmission Control Protocol) 신뢰성 있는 데이터 통신을 가능하나게 해주는 ..

Index

Index (검색을 위해) 임의의 규칙대로 부여된, 임의의 대상을 가리키는 무언가 ex) 2학년 3반 21번, 서울시 송푸구 신청동 루터회관 05510, List objects ... objects.get(index) IN DATABASE 데이터베이스는 내가 원하는 데이터를 어떻게 찾아오는 걸까? 왜 데이터가 많아질수록 점점 느려질까? 왜 조인만 수행하면 느릴까? 왜 쿼리가 느릴까? Clustered vs Non -Clusterd Clustered Index : 군집화된 인덱스 Cluster : 군집 Clustered : 군집화 *뭐가 군집? 인덱스와 데이터가 군집(정렬되어있다) -> 범위 검색 아주 강력!, 삽입과 정렬비용이 커지면 아주 느리다. 순서대로 한테이블에 하나만 범위 검색 Good -> 공간..

Back-end/DB 2021.05.04

빌드 용어

빌드 빌드 컴파일 + 링크 빌드 과정 원시파일(.java) -> 컴파일러 : 오브젝트파일(.class) -> 링커 : 실행파일(.jar) 빌드 도구 소스 코드로부터 실행 가능한 어플리케이션을 생성하는 것을 자동화하는 프로그램 java : ant -> maven -> gradle Ant Maven Gradle xml pom.xml 절차적 의존성 다운로드 가능 Groovy/ Kotlin 유연성(하나 하나 명시) 컨벤션(간편 해졌다.) 유연성 스크립트를 직접 명시 사용자 의도에 맞는 로직 개발이 어려움 스크립트의 규모가 작음 현대적인 빌드 도구 c# : MSBulid 닷넷 : .NetFrameWork, Nant *자동화(서비스 중 프로그램 코드 수정) 1. 코드수정 2. Git 3. 컴파일 4. 빌드 -> 빌..

Back-end/ETC 2021.05.04

[파이썬]-백준(BOJ) 10815번_ 숫자카드

www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 해설 이분 탐색으로 풀어야 합니다!! 선형 탐색으로 접근해서 시간 초과가 난후, index 함수로 인한 시간초과후 이분탐색으로 풀었습니다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#..

백준 2021.05.03

Web Server VS WAS

Web 인터넷을 기반으로 한, 정보를 공유, 검색할 수 있게 하는 서비스 URL(주소), HTTP(통신 규칙), HTML(내용) Server 클라이언트에게 네트워크 통해 정보나 서비스를 제공하는 컴퓨터 시스템 Web Server 인테넛을 기반으로 클라이언트에게 웹 서비스를 제공하는 컴퓨터 APACHE MICROSOFT LLS Web Application Server Web Application 웹에서 실행되는 응용프로그램 Web Application Server 웹 애플리케이션과 서버 환경을 만들어 동작 시키는 기능을 제공하는 소프트웨어 프레임워크 웹 애플리케이션을 실행시켜 필요한 기능을 수행하고 그 결과를 웹 서버에게 전달 1. php, jsp, asp 를 사용해 동적인 페이지를 생성할수 있는 서버 2..

Back-end/ETC 2021.05.03

Spring Boot vs Spring

Spring -> 이름의 유래 개발자들의 겨울이 끝났다 !! 봄이 왔다!! 1. 모든 dependency를 버전까지 정확하게 한땀 한땀. 2. configuration 길다! Spring boot makes it easy stand - alone production -grade Spring based Applications just run 1. 짧아 졌다. 버전 관리도 권장버전으로 자동설정 스타터로 자동 디펜던시 2. gradle 이용시 더 짧은 길이 application.properties-> aplication.yml 사용자가 보기 깔끔하다. *Yaml Ain't Markup Language 3. Tomcat 내장 서버 -> 내장 서블릿 컨테이너 덕북에 jar 파일로 간단 배포! 4. 스프링 Seur..

Back-end/SpringBoot 2021.05.01

인증과 인가

인증과 인가 인증 (Authentication) 보호된 리소스에 접근하는 것을 허용하기 이전에 등록된 유저의 신원을 입증하는 과정 인가(Authorization) 요청된 리소스에 접근할 수있는 권한이 인증된 유저인지 입증하는 과줭 인증 -> 인가(권한이 있는 인증 된 유저) 인증되었지만 권한이 없다 -> 인가 X 인가되었지만 인증은 되지 않았다 -> 불가 X 웹에서의 인증/인가 - 요청 헤더 - 세션, 쿠키 - 토큰 - OAuth 다른 웹사이트 상의 자신들의 정보에 대해 접근 권한을 부여 할수 있는 공통적인 수단 개방형 표준 Authorization Code Grant 클라이언트가 다른 사용자 대신 특정 리소스에 접근을 요청할 때 사용 OAuth(1.0 -> 2.0) 인증 절차 간소화 기능 단순화 및 규..

[파이썬]-백준(BOJ) 1092 _ 배

www.acmicpc.net/problem/1092 1092번: 배 첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보 www.acmicpc.net 해설 최대힙으로 풀어볼려고 했지만 실패해서, 구글링을 참고한결과 그냥 포문을 다 돌려주면 되었따. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788..

백준 2021.04.29

[파이썬]-백준(BOJ) 11000 _ 강의실 배정

www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (1 ≤ Si < Ti ≤ 109) www.acmicpc.net 해설 heapq를 사용해서 해결한다. 일단 받고 정렬한뒤, 끝값을 힙에 넣어줘서 새로드러오는 값이 크거나 같다면 바꿔고 최종적으로 길이를 출력해준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 # 강의실 배정 # 시간 제한 메..

백준 2021.04.29