본문 바로가기

코딩

[파이썬/Python/인공지능/웹크롤링] Anaconda를 이용해 Jupyter Notebook을 실행해보기 "요즘 가장 많이 쓰는 프로그래묑 언어가 무엇인가?" 라는 질문을 받으면 보통 C언어를 떠올립니다. 저 역시 가장 많이 사용하는 언어는 Java나 C, C++일 것이라 예상했었습니다. 하지만 최근 인공지능이 떠오르면서 사용량이 급증하게 된 프로그래밍 언어가 있습니다. 바로 Python입니다. Google에서는 Tensorflow라는 인공지능 라이브러리를 무료로 배포하는데 이 Tensorflow를 포함한 인공지능 라이브러리들 인해 Python이 떠오른 가장 큰 요인이지 않을까 싶습니다. 저도 Java 위주로 언어를 공부하였고, 부가적으로 C언어를 공부하였지만 Python을 사용하면서 느낀 점은, "깔끔하고 굉장히 쉽다" 였습니다. Java는 기본적으로 코드가 매우 길고 초반 진입 장벽이 높은편(처음 Jav.. 더보기
[대학원 과제] Extended Euclidean Algorithm(확장 유클리드 호제법)을 이용한 모듈러 역원 구하기 with Java 앞의 포스팅에 앞서서 확장 유클리드 호제법을 이용한 모듈러 역원 구하는 방법을 코드화하였습니다. 해당 방법을 코드화 하여 구현하였으며 과제로 나온 문제 예시는 다음과 같습니다. 이를 Java로 코드화하였을 때, 결과가 올바르게 나온 것을 확인할 수 있습니다. 코드는 아래 Repository에 담아 두었습니다. https://github.com/ahrizwell/myRepository/blob/java/extendedEuclideanInverse.java ahrizwell/myRepository Everything I did. Contribute to ahrizwell/myRepository development by creating an account on GitHub. github.com 물론 연산속도.. 더보기
[대학원 과제] 모듈러(Modulo, %)의 역원 구하는 프로그램 with Java 이번에는 모듈러의 역원을 구하는 문제가 과제로 나왔습니다. 원래 모듈로의 역원을 구하기 위해서는 1) 유클리드 호제법, 그리고 이를 확장한 2) Extended 유클리드 호제법, 그 후 3) Multiplicative Inverse 를 배우고 구하는 방식을 권고(?)하고 있습니다. 하지만 생각해보니 단순히 모듈러의 역원을 구하는 것이라면, 위 방식을 응용한 방법을 사용하는 것이 좋다고 생각하여 알고리즘들을 찾아보았습니다. 원래 네트워크 암호학 배울 때 다 그렇지만 시험기간이 다가올수록 꼼수(?)를 사용하여 한방에 구할 수 있는 공식 혹은 알고리즘을 만들어 시험장에 가는게 정석(?)이기 때문이죠. 참고로, 구하는 속도 측면에서는 확장된 유클리드 호제법을 이용한 Multiplicative Inverse를 이.. 더보기
[Java] Java 코딩 실행환경 구축하기(Eclipse 설치법) Java는 안드로이드 어플리케이션이나 웹 구축 시 많이 사용하는 객체 지향 언어입니다. 최근 많은 기업에서 Java를 사용하여 개발한다고 합니다. 이는 Java를 사용하는 빈도가 예전에 비하여 많이 늘었다는 이야기로써 제일 많이 사용하는 언어가 Java라는 의미는 아닙니다. Eclipse는 C언어 공부할 때 Visual Studio와 비슷한 프로그램이라 보시면 됩니다. 물론 메모장에 코딩하고 cmd 상에서 java를 실행할 수도 있지만 초심자가 사용하기엔 난해한 방법이며, 무엇보다 코드 정렬과 디버깅이 굉장히 어렵습니다. 포스팅을 하기 위해서 새로운 컴퓨터에 Eclipse를 다운로드 받아봤는데 예전보다 많이 간단해졌습니다. 예전에는 JVM, JDK를 따로 Oracle가서 다운받아야 했는데 지금은 그냥 E.. 더보기