일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Pattern
- 로버트마틴
- Spring
- tcp
- 겨울카카오인턴
- Collections
- 파이썬
- 함수형 프로그래밍
- exception
- Rails
- 백준
- functional programming
- 람다 칼큘러스
- JDBC
- 스택
- solid
- 프로그래머스
- javscript
- Java
- Collection
- Python
- lambda calculus
- JavaScript
- Eclipse
- 큐
- 디자인패턴
- design-pattern
- 자바
- DesignPattern
- Network
- Today
- Total
목록전체 글 (177)
개발자 노트
문제 설명 구현문제이다. 대기하는 줄이 존재하고 서비스하는 카운터가 존재한다. 전형적인 queue문제. 삼성의 구현문제인 만큼 차근차근히~ 읽어서 풀어야 한다. 주어진 자료는 다음과 같다. 고객이 차량 정비소에 도착한 순서대로 번호를 부여받는다. 접수창구가 꽉차있으면 도착 순으로 대기하고, 접수창구가 비어있으면 비어있는 창구 중 번호가 빠른 접수창구로 이동한다. 정비창구도 이와 같이 도착순, 번호가 빠른, 비어있는 창구로 이동한다. 하지만! 동시에 접수창구가 서비스가 끝났을 경우 번호가 빠른 접수창구가 우선적으로 정비를 받는다. 문제의 목적은 특정 창구를 이용했던 사람들 찾는 것이다.(정확히는 그 사람들의 합) 접근 어떻게 하면 문제를 단순하게 볼 수 있을까? 큐 결국~ 대기행렬이론에서 큐1개, 서비스하..
문제 설명 전형적인 BFS문제이다. 설명한다면 이 문제에 대해 말하기 보단 BFS에 대해 말하므로 설명은 생략. 접근 문제를 이해하는 건 쉽다. 하지만 전에 이런 종류의 문제를 비효율적으로 구현한 적이 있어 효율적으로 탐색하는 방법에 대해 적으려 한다. 문제의 상황은 다음과 같다. 점들을 bfs로 탐색해야 하는데, 모든 위치를 방문해야 한다. 초기 접근 visited 모든 배열을 탐색한다. 미방문 했다면 그 부분 기준으로 BFS 탐색 다시 visited 모든 배열을 탐색한다. 미방문 한 지점이 있다면 그 부분 기준으로 BFS 탐색 모두 방문했다면 종료. 이렇게 구현하면 visited탐색이 반복되므로 매우매우~ 비효율적이다. 최근 접근 방법 visited 탐색한다. 탐색 중 방문 여부 확인 미방문 BFS ..
배포시 문제 encoding colsole을 통해 입력창을 구현했다. 그놈의 cp949, utf8때문에 한글이 안보인다. java version, jre java version 때문에 실행이 안된다. 최신 버전으로 작성했는데 막상 exe로 변환하는 프로그램을 이용할 때 1.8버전을 지원한다. 13버전으로 만든 jar파일은 java version 1.8 프로그램으로 exe파일을 생성할 시 실행이 안된다. 반대로는 호환이 되겠지만... 그래서 멋쟁이 eclipse로 다시 1.8버전으로 바꾼뒤 jar파일을 생성하여 만들었다. 실행이 됬다. 하지만 아래를 보면 exe파일을 만드는 의미가 거의 없다. exe파일로 만들면 jre가 필요없을 줄 알았다. python에선 필요없었기 때문에 이것도 마찬가지일 줄 알았다...
ver1.0문제점. (소스코드는 아래에 있습니다.) https://github.com/jurogrammer/PROJECT/tree/master/ftp%EB%8F%99%EA%B8%B0%ED%99%94 1.수정한 파일이 삭제된다. 원인 기존에 ftp에 있는 파일 목록이 있는 db가 있다. 그리고 클라이언트의 동기화 폴더를 탐색하며 이전 db목록들을 pop한다. 그리고 남은 것들에 대해서 삭제하는 방식. 그런데 수정한 파일은 hash값이 달라서 해당 파일이 기존 db에서 pop되지 않는다. 따라서 수정한 파일을 전송하고, 해당 데이터가 db에서 없어지지 않아서 삭제메소드 작동시 수정한 파일이 삭제된다. 해결방안 아예 자료구조를 새로 생각해보는 건?? 일단은 잘 작동되는게 목적이므로.. 나중에 리팩토링하자. ..
MainClass 못 찾는 문제 메이븐에서 메인 클래스를 지정해주지 않아서 그렇다. https://boxfoxs.tistory.com/332 이 분이 잘 설명해주셨다. 잘 실행되다가 class 못찾는 문제 proejct -> clean 해볼 것. Maven dependency class 못찾는 문제. maven dependency 설정시 라이브러리의 설치경로는 /user/.m2/repository 실행시 해당 위치에 있는 라이브러리를 참조했던 것이다. 그런데 메이븐 프로젝트로 빌드하면 manifest에 class-path가 설정되어 있지 않다. 그래서 maven dependency에 작성한 라이브러리(jar)를 못찾았던 것. 이를 해결하기 위해 해당 라이브러리를 참조할 수 있도록 설정해주면 된다. 라이브..
FtpSyn하며 알게된 것들 1.폴더삭제는 recursive삭제해야 함. 디렉토리는 파일을 담는 그릇 정도. 파일시스템.! 디렉토리 삭제는 -> 디렉토리 내 파일들을 삭제한다는 것. 그 파일 내에는 또 디렉토리가 있으므로 디렉토리 탐색하며 삭제. 말이 안되지만 디렉토리만 삭제 한다면? 파일에 접근할 수 없다. 파일이 삭제 된다해도 파일 시스템상 삭제된 파일이 기록됨. 이건 운영체제상 삭제관리가 아닌 것. 2.interface 사용 이유 -> 다형성으로 의존성 약화 파일 내용의 수정여부를 판단하기 위해 sha-1을 이용했다. 그런데 나중에 다른 해쉬함수를 이용할 수도 있다. sha-1이 아주 적은 확률로 충돌할수있다나... 그래서 sha-256으로 할 수 있는거 아니야? ->그럼 hashFunction이라..
명확히 다 쓰기엔 모든 걸 완벽하게 알지 못한다. 이래서 워터폴 방식은 안되나보다. 그래서 대략적인 관계를 보여주려한다. 1.객체간 데이터는 JSON으로 통일한다. => 복잡성을 최대한 줄이기 위해서. 각 클래스가 원하는 데이터에 맞게 전송해주려 하니 입출력데이터형을 일일이 다 봐줘야 한다. 이로 인해 의존성도 높아져서 JSON으로 통일하였다.(이래서 spring에서 DTO를 쓰는건가 싶다.) 2. FTP통신을 통해 server에 접속하여 파일을 다운,삭제 및 디렉토리 변경 등은 FTPManipulation 객체에서 담당해준다. 3.Client의 파일 탐색같은 건 FileManager가 담당해준다. 4.Synchronzation이 2.(server) 3.(client)의 디렉토리를 동일하게 설정해주어 파..
프로젝트 주제 win client와 ubuntu server 폴더를 동기화 하자! 목적 win client에서 작업한 결과물을 ubuntuserver에 동기화해서 웹 서버 동작을 ubuntu에 분담하기 위해서. 장점 iptime의 DDNS기능 이용 가능 서버가 위치가 고정된다 노트북의 cpu,memory 등 자원을 확보할 수 있다. 특징 win client -> ubuntu server로만 데이터를 보낸다. ftp 통신이다. win에서 변경하면 이 변경사항을 ubuntu server에 적용시키는 것. ubuntu의 변화는 win에 영향을 미치지 않는다. (win에서만 작업 수행.) 준비 작업 1. 두 컴퓨터간 동일한 환경으로 설정 mysql - 8.0.19 (utf-8 설정) openjdk 14.0.1 ..
에러 문구: 더보기 No converter found for return value of type: class java.util.HashMap com.fasterxml.jackson.core jackson-core 2.9.2 위dependency를 추가했음에도 HashMap을 jason으로 바꿀 converter가 없다고 한다. 해결방법: 참고 링크 : https://mine-it-record.tistory.com/3
노트북에서 서버를 돌리면 느려지기 때문에 집에 ubunutu를 설치하여 서버로 이용하려 했다. 여태 해온 프로젝트를 옮기고 환경을 일치해주는 과정에서 발생한 문제를 적어보겠다. 1.JDK version 불일치 * jdk verison을 일치시키기 위해 window 컴퓨터 jdk 설치 * ubuntu apt-get 방식이 아닌 https://openjdk.java.net/install/ 이 사이트에서 설치 * eclise에서 jdk 버전 수정2.경로 불일치 properties 경로를 C://였다면 ubuntu에선 /home/ju..로 설정 3.MYSQL version 불일치 window에선 8.x 버전을 사용하다가 ubuntu에서 apt-get으로 얻는 것이 5.x라 5.x로 변경. 연결이 안된다... 원..