본문 바로가기

Portpolio220

자바 알고리즘 인터뷰 10. 데크, 우선순위 큐 2024. 2. 16.
spyder 실행 오류 ModuleNotFoundError: No module named 'zmq.asyncio' 해결법 며칠 전 python 프로그래밍을 위해서, Anaconda 내에 포함된 Spyder라는 ide를 실행시켰는데 아무리 켜봐도 실행이 안되는 것이다. 그래서 이미 Anaconda Prompt로 spyder를 쳐서 실행해보려고 했는데, ModuleNotFoundError: No module named 'zmq.asyncio' 이런 오류가 뜨는 것이다. zmq란 zero message queue라는 분산/동시성 애플리케이션에 사용하도록 개발된 고성능 비동기 메시징 라이브러리이다. 메시지 큐를 제공하지만 메시지 지향 미들웨어와 달리 ZeroMQ는 전용 메시지 브로커 없이 동작이 가능하다. 라고 하는데 내가 쓰고자 하는 spyder ide 실행 오류에 대해서 해결하기 위해선 pyzmq라는 라이브러리가 있어야 하는데.. 2024. 2. 7.
error:0308010c:digital envelope routines::unsupported 주로 Node.js에서 일어나는 에러이다. 필자는 npm start를 하고 서버가 제대로 실행이 되지 않길래 얼마 후 터미널에 뜬 메시지를 보니 위의 제목같이 내용이 뜬 것이다. 기본적으로 이 문제에 대한 아래의 방법은 보안의 취약성을 어느 정도 야기할 수 있다는 방법임을 인지할 필요가 있다. 레거시 공급자라는 보안상 다소 불안정하여 사용하지 않는 요소를 활성화시키는 작업이 필요하다. 해결방법(리눅스): 터미널에 아래의 명령을 입력하고 엔터한다. export NODE_OPTIONS==--openssl-legacy-provider 더 자세한 내용은 MD4 알고리즘에 대해 찾아보면 좋을 듯 하다. 2024. 2. 4.
토비의 스프링 3.1 1권 스터디 03. 템플릿 3장. 템플릿 3.1 다시 보는 초난감 DAO DB 커넥션은 어떤 예외가 발생하더라도 리소스를 다시 반환해야 한다. 예외 상황에서 리소스 반환하는 방법을 찾아야 한다. 대표적으로 아래의 코드를 보자. jdbc 수정에서 필요한 리소스는 2개가 있다. Connection과 PreparedStatement. public void deleteAll() throws SQLException { Connection c = dataSource.getConnection(); PreparedStatement ps = c.prepareStatement("delete from Users"); ps.executeUpdate(); //예외가 발생 시 메소드 실행 중단이 된다. ps.close(); c.close(); } 방금 전.. 2024. 1. 27.
토비의 스프링 3.1 1권 스터디 02. 테스트 02장. 테스트 2.1. 테스트 스프링 프로젝트에서는 src 디렉토리 하위에 main 디렉토리와 test 디렉토리를 두어서 개발한 로직에 대해 테스트를 할 수 있게 해 준다. 테스트는 반드시 진행해야 하는 과정이다. 2.2. 기존 테스트 코드 개선 Junit을 이용해서 리팩토링 가능 그러려면 메소드가 public으로 선언되어야 하고, 메소드에 @Test라는 Annotation이 붙어야 한다. 2.3. 개발자를 위한 테스팅 프레임워크 Junit 코드에 변경 사항이 없다면 항상 동일한 결과를 내야 한다. Junit은 @Test가 붙은 메서드를 실행하기 전과 후에 각각 @Before과 @After가 붙은 메서드를 자동으로 실행 테스트 메서드를 실행할 때마다 새로운 오브젝트를 만드는 이유는? 2.4.스프링 테스.. 2024. 1. 23.
2024년 1월 정보보안 스터디 02. 2차시 국제 웹 보안 표준기구가 발표한 10대 웹 취약성 10위 https://apisecurity.io/owasp-api-security-top-10/ OWASP API Security Top 10 Vulnerabilities: 2023 - API Security News The first OWASP API Security Top 10 list was released on 31 December 2019. They are listed below apisecurity.io 1위: Broken Object Level Authorization 2위: Broken Authorization 3위: Broken Object Property Level Authorization 4위: Unrestricted Resources.. 2024. 1. 22.
2024년 1월 정보보안 스터디 01. 1차시 정보보안은 주로 해커나 사이버 전사에만 국한되는 이미지가 그려진다. 그러나 개발자조차도 특히 웹 개발자라면 보안에 대해서 무지할 수 없다. 사이버 보안이 대두된 이유가 무엇인지 생각해보면, 단순히 컴퓨터가 홀로 존재하며 계산만 하던 시절을 넘어 네트워크로 연결된 상태가 된지 오래되었기 때문이다. 이러한 상황에서 모두가 네트워크라는 그물에 연결되면서 오히려 해킹과 같은 범죄가 증가하게 되는 것이다. 아무도 살지 않는 오지의 농촌보다 인구밀도가 높은 도심에서 슬럼가가 발생할 확률이 더 높은 것과 유사하다. 그렇다면 어느 정도까지 알아야 할까? 모든 사람이 경찰로 일할 것은 아니지만 그러나 모두 자신의 몸과 가정, 재산을 지키기 위한 방어책 정도는 마련해 놓는 것이 당연하듯이 웹 상에서 개발을 하는 개발자 역.. 2024. 1. 22.
2024년 1월 정보보안 스터디 00. 시작 주제: 정보보안 기술과 사례 일정: 2024.01.02 ~ 2024.01.12 01. 1차시 https://zpub.tistory.com/298 2024년 1월 정보보안 스터디 01. 1차시 정보보안은 주로 해커나 사이버 전사에만 국한되는 이미지가 그려진다. 그러나 개발자조차도 특히 웹 개발자라면 보안에 대해서 무지할 수 없다. 사이버 보안이 대두된 이유가 무엇인지 생각해 zpub.tistory.com 02. 2차시 https://zpub.tistory.com/299 2024년 1월 정보보안 스터디 02. 2차시 국제 웹 보안 표준기구가 발표한 10대 웹 취약성 10위 https://apisecurity.io/owasp-api-security-top-10/ OWASP API Security Top 10 .. 2024. 1. 22.
git branch 삭제하는 방법 보통 어떠한 기능을 개발하고 나면, 해당 브랜치를 지우게 된다. 로컬에서는 해당 브랜치를 git branch -d [local branch name] 으로 삭제한다. 그렇다면 원격저장소에서는 git branch [remote repo name] -d [remote branch name] 으로 삭제하면 된다. 2024. 1. 22.
인텔리제이 the fully qualified name of the class ~ 오류 해결법 집에 있는 다른 컴퓨터를 켜서 git으로 clone을 로컬에 한 후 작업을 하고 있었는데, 인텔리제이에서 그 파일을 열고 테스트 삼아 한 자바 클래스 파일의 main method를 실행시켰더니 저런 메서드가 뜨는 것이다. 해결법은 아래와 같다. 1. 설정 들어가서 build tool > gradle 가서 Build and run using과, Run tests using이 gradle로 되어있을텐데 2. intellij로 둘 다 바꾸고 apply ok 눌러주자 3. 그리고 run/debug configuration으로 가면 4. 처음에 없던 -cp ~~ 어쩌고 있는 칸에 들어가면 패키지가 더 자세하게 나온다. 그럼 그제서야 체크해주고 apply ok하면 main method 왼쪽에 없던 실행 버튼이 나온다. 2024. 1. 21.