전체 글 보기 148

[프로그래머스] 프린터(파이썬)

https://programmers.co.kr/learn/courses/30/lessons/42587?language=python3 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr def solution(p,l): answer=0 while(p): if p[0] 0: l-=1 else: l=len(p)-1 print(answer)

[프로그래머스] 기능개발(파이썬)

https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 나의 답 : # import collections, math # def solution(p, s): # p=collections.deque(p) # s=collections.deque(s) # a=0 # print(s,p) # answer = [] # for i in range(len(p)): # p[i]=math.ceil(..

[프로그래머스] 완주하지 못한 선수(파이썬)

https://programmers.co.kr/learn/courses/30/lessons/42576?language=python3 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr def solution(participant, completion): participant.sort() completion.sort() for i in range(len(participant)-1): if completion[i] != participant[i]: return participant[i] else:..

[네트워크] HTTPS, Key

네이버 들어가서 주소 왼쪽에 자물쇠를 클릭해보면 이 사이트는 보안연결(HTTPS)이 사용되었다고 뜬다. HTTPS는 HyperText Transfer Protocol over Secure Socket Layer. 즉, www의 통신 프로토콜인 http의 보안이 강화된 버전이다. HTTPS는 소켓 통신에서 일반 텍스트를 주고받는 대신에 SSL을 이용해 세션 데이터를 암호화하여 사용한다. 클라이언트와 서버가 통신할 때 클라이언트는 이 서버가 진짜인지 가짜인지를 모릅니다. 서버는 자신이 진짜임을 인증하기 위해 공인기관(CA)로부터 별도의 인증서를 받는데 이를 SSL인증서라고 합니다. 이 인증서를 발급받은 서버는 진짜임이 인증되고 클라이언트와 어떻게 데이터를 암호화해서 주고받을 것인지 협상단계로 넘어가게 됩니다..

공부/네트워크 2022.02.15

[네트워크] MDC/MAC

MDC(Message Detection Code) 송신자가 MAC 알고리즘을 이용하여 생성한 MD(Message Digest)를 메시지와 함께 보냄 수신자는 메시지와 MD를 받은 후, 받은 메시지를 MAC 알고리즘을 통해 MD를 생성함 그 후 생성한 MD와 전달받은 MD를 비교하여 위조 / 변조 여부를 확인 MDC는 메시지의 위조 / 변조만을 검증할 뿐 누가 보냈는지를 검증하지 않기 때문에 인증이 어려움 공격자가 중간에 MD와 메시지를 탈취하여 메시지를 변조한 뒤 다시 수신자에게 보내면 이것이 변조된 것인지 아닌지 알 수 없음 메시지 위조 / 변조 검증에만 사용 MAC(Message Authentification Code) 상대방이 보낸 암호화데이터가 변조된 것인지, 아닌지를 판단하는 것은 MDC와 동일..

공부/네트워크 2022.02.15

[네트워크] 서브네팅, 서브넷마스크

1. 서브네팅 서브네팅은 네트워크 관리자가 네트워크 성능을 향상시키기 위해 자원을 효율적으로 분배하는 것이다. 여기서 자원을 효율적으로 분배한다는 것은 네트워크 영역과 호스트 영역을 분할하는 것이다. 네트워크 측면에서 너무 큰 브로드캐스트 도메인은 네트워크 환경에서 패킷전송을 느리게 하여 성능저하를 발생시키기 때문에 네트워크를 쪼개서 통신 성능을 보장하는 것이다. ip는 32자리 2진수로 표현할 수 있다. 즉 자원의 한계가 존재한다는 것이다. 그래서 서브넷 마스크를 사용한다. 서브넷마스크는 필요한 네트워크 주소만 호스트로 할당하여 네트워크 낭비를 방지한다. Ip는 네트워크부분 + 호스트 부분으로 구성되어 있다. 하나의 네트워크 즉 하나의 브로드캐스트 도메인에 있는 ip끼리 통신하기 위해서는 네트워크 영역..

공부/네트워크 2022.02.14

[spring] jpa paging(page,pageable,pagerequest)

repository에서 findAll()메서드로 데이터를 찾는다. 페이징을 위해 Pageable 인터페이스를 사용한다.(페이징을 위한 정보가 있다. 페이지 번호, 페이지 내 목록의 개수, 검색 조건 등) Pageable : Abstract interface for pagination information. (https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/domain/Pageable.html) Pageable의 구현체인 PageRequest클래스를 사용하여 생성한다. 생성자가 protected이기 때문에 of()메서드를 이용한다. 생성 후 Pageable인터페이스로 생성하여 출력해보면 다음과 같다. 이..

[java] garbage collection

1. Garbage Collection 프로그램을 개발 하다 보면 유효하지 않은 메모리인 가바지(Garbage)가 발생하게 된다. C언어에서는 free함수를 사용하여 개발자가 직접 메모리를 해제해야주어야 한다. 하지만 자바나 코틀린을 이용해 개발하면 JVM의 가비지 컬렉터(Garbage Collector, GC)가 불필요한 메모리를 알아서 정리해준다. 대신 자바에서 명시적으로 불필요한 데이터를 필요하기 위해 일반적으로 null로 선언한다. Person person = new Person(); person.setName("hong"); person = null; // 가비지 발생 person객체는 가비지가 된다. 자바나 코틀린에서는 이러한 메모리 누수를 방지하기 위해 GC가 주기적으로 검사하여 메모리를 청..

공부/자바 2022.02.03

[java] jvm, hotspot jvm

자바에서 프로그램을 실행한다는 것은 소스코드의 컴파일을 통하여 생성된 클래스파일을 로딩하고 바이트코드를 해석하여 메모리 등의 리소스를 할당하여 처리하는 것이다. 이때 jvm(java virtual machine, 자바 가상 머신)은 스레드 관리, 가비지 컬렉션과 같은 메모리 정리 작업도 수행한다. Java Compiler : Java 소스파일을 JVM이 해석할 수 있는 Java Byte Code로 변경한다 Java Byte Code : Java Compiler에 의해 수행된 결과물 (.class 파일) Class Loader : JVM 내로 .class파일들을 로드하고, 로딩된 클래스들을 Runtime Data Area에 배치한다 Runtime Data Area : JVM이라는 프로세스가 프로그램을 수행..

공부/자바 2022.02.03