분류 전체보기

Programming/Java

[Java8] 함수형 인터페이스와 람다 표현식

java 8 버전을 꽤 오래 사용했었는데, 제대로 공부한 적이 없는 것 같아 조금씩 정리해보는 포스팅을 써본다. 함수형 인터페이스 (Functional Interface) https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.8 Chapter 9. Interfaces If a single field is inherited multiple times from the same interface because, for example, both this interface and one of this interface's direct superinterfaces extend the interface that declares the field, th..

Programming/Java

객체, 클래스 그리고 인스턴스

출퇴근 길이나, 자기 전에 가끔 okky나 velog 등등 개발자 커뮤니티를 한번 훑어보며, 오늘은 무슨 재밌는 이야깃거리가 없나 하고 보는 경우가 있다. 그러던 중 객체, 클래스, 인스턴스에 대한 정의가 무엇인지 물어보는 글이 있어서 곰곰이 생각해보다가 한번 정리를 해본다. 기본적으로 프로그래밍은 실세계에서의 문제를 해결하기 위한 목적(?) 또는 방향성을 지니고 있고, 해당 문제를 어느 정도 추상화해서 다룬다. 이때 실세계에 있는 어떠한 것들을 객체지향에서는 객체라고 가리키고 있다고 생각한다. 예로 내가 학생부 프로그램을 만든다고 했을 때, 학생부에 기입되는 학생들은 하나의 객체이고, 학생부 또한 객체이다. 넓은 의미에서 객체는 우리가 인지를 하고 있는(식별 가능한) 유형, 무형 모든 것을 객체라고 생..

Programming/Algorithm

[Queue문제] - ZigZagOrder

위와 같은 트리가 있을 때, [[1], [3, 2], [4, 5]] 의 결과를 출력하라 트리를 탐색하는데, 한번씩 방문 순서를 지그 재그 형태로 바꿔가면서 탐색을 해야 하는 문제이다. 일반적으로 트리를 preorder(전위순회)로 순회하지만, L, R 부분을 바꿔가면서 탐색하도록 해야 한다. 간단하게 boolean 타입 플래그를 두고, L와 R 노드를 방문하는 순서를 바꿔주면 된다. package inflearn.queue; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; class TreeNode { public int val; public TreeNode left;..

Programming/Algorithm

[프로그래머스] - [큐스택] 주식 가격 문제

[문제 링크] https://programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr [제약조건 및 풀이] prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. prices [1, 2, 3, 2, 3] return [4, 3, 1, 1, 0] 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까..

Programming/Algorithm

[프로그래머스] - [큐스택] 프린터 문제

[문제 링크] https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr [제약조건 및 풀이] 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 풀이는.. 그냥 문제 설명대로 풀었다. 핵심은 원하는 값이 나올 때까지 위 과정을 1~2~3 과정을 ..

Programming/Algorithm

[프로그래머스] - [큐스택] 기능개발 문제

https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr import java.util.ArrayList; import java.util.Queue; import java.util.stream.IntStream; import java.util.concurrent.ConcurrentLinkedQueue; class Solution { public int[] solution(int[] progresses, int[..

Programming/Go

Go로 초간단 CORS Proxy 서버 만들기

웹 프론트 프로젝트를 할 때 호스트가 다른 서버로 API를 요청하는 경우 CORS 오류를 많이 겪어봤을 것이다. 이를 위해 중간에 CORS Proxy 서버를 두고 테스트를 하는 경우가 많은데 node로 만들어져 npm에 등록된 프로젝트도 많이 보였다. Go를 조금씩 공부하고 있어서 Go의 httpuil 패키지의 reverse proxy 모듈을 활용하여 간단한 CORS Proxy 서버를 만들어보았다. 타겟 서버가 세션 쿠키를 사용하는 경우를 대비해서, 쿠키 내용을 파싱하여 호스트 정보를 바꾸는 부분 또한 추가했으며 타겟 서버의 주소와 access control allow origin에 들어갈 현재 클라이언트의 호스트 정보, 프로그램의 포트 정보 등 부가 정보는 .env파일로 따로 작성하여 불러오도록 하였다..

Programming/Python

UTF8 with BOM 으로 파일 인코딩해서 저장하기

최근 만들고 있는 자막 변환기 파이썬 프로그램을 통해 .srt 파일을 만드는 도중, subtitle editor에서 저장된 .srt 파일이 UTF8 with BOM 형태로 인코딩 되어 저장되는 사실을 알았다. 어도비 프리미어 프로에서 내가만든 파이썬 프로그램의 .srt 파일 결과물이 인식이 안되어 혹시 해당 인코딩 문제인 줄 알고 인코딩을 바꿔본 경험을 적어본다 (프리미어 프로에 .srt 파일이 인식 안되던 건 사실 인코딩 문제가 아니었다). out_put1 = open(os.path.join(save_path_info, file_name + "_자막.srt"), "w", encoding='utf8') ''' 해당 특문을 파일 최상단에 먼저 적어줘야 utf8 with bom으로 인식한다. 실 파일에는 해..

JohnMark
'분류 전체보기' 카테고리의 글 목록 (2 Page)