본문 바로가기

전체 글81

[Julia] 기본2 - 1. 구조체 기본 정의법(outer/inner constructor) 링크의 내용을 공부하며 제멋대로 번역한 내용입니다. 코드를 좀 심오하게 짜보려하니 구조체(struct)를 정의하는 법 먼저 궁금해졌다. 데이터를 뭉터기로, 효율적으로 다루기 위해서는 필수이니까. CONSTRUCTOR 일단 여타 다른 코드들과 비슷하게 정의한다. 특징이라면 형식을 정해주지 않아도 된다는 정도이다. 물론 데이터 형식을 정의할 수도 있다. 뒤에 나온다. struct Foo firstMass secondMass end 이렇게 구조체를 정의하고 이 구조체를 이용해 변수를 할당하면 . 으로 구조체 요소에 접근할 수 있다. myFoo = Foo(100,10) print("Mass of my first foo = ", myFoo.fisrtMass) #>> Mass of my second foo = 10.. 2021. 10. 12.
[Julia] 기본1 - 6. 행렬식 해 구하기 링크의 내용을 공부하며 제멋대로 번역한 내용입니다. 기본편은 이 글이 마지막 글이며, 링크에 보간법, 수치적분법, FFT 관련 내용도 있으니 참고바랍니다. 수치해석을 하려면 이제 행렬을 푸는 방법을 알아야한다. 얼마나 빠르고 정확하게 행렬식의 해를 구할 수 있는가는 수치해석의 처음과 끝이다. FEM을 풀던 FDM, FVM, 등 뭐를 풀던 똑같다. EXAMPLE PROB. LAPLACIAN EQU. 예제 라플라시안 방정식 자 격자를 M+1개로 나눈다. 즉 포인트는 M+2개가 되겠다. (0,1,2..., M, M+1) 그리고 Uxx를 2차 중앙 차분을 하면 아래와 같다. 각 경계조건은 알파와 베타이니까, u0 = alpha, u_(m+1) = beta로 놓고 행렬식을 정리하면 다음과 같다. 자 여기서 h는 .. 2021. 10. 11.
[Julia] 기본1 - 5. 행렬 가지고 놀기! 링크의 내용을 공부하며 제멋대로 번역한 내용입니다. 일단 수치해석을 하려면 사용하는 언어의 행렬사용법을 찐하게 알고 있어야한다. 효율이 생명인데 행렬(어레이)자체를 비효율적으로 계산하고 있으면 도루묵이기 때문이다. INITIALIZING ARRAYS 행렬정의! 직접 정의는 여느 프로그래밍언어와 비슷하다. A = [1 2 3; 1 2 4; 2 2 2] A = [1 2 3; 1 2 4; 2 2 2] 요런 식이다. 근데 백터랑 행렬이랑 좀 객체 유형이 달라진단다. 아래 예시를 보자 V1 = [4.0, 5, 6] # 3-element VECTOR (Float64) V2 = [4.0; 5; 6]# 3-element VECTOR (Float64) M1 = [4.0 5 6]# 1x3 Matrix(Float64) 콤마.. 2021. 10. 11.
[Julia] 기본1 - 4. 함수 사용하기 링크의 내용을 공부하며 제멋대로 번역한 내용입니다. Juila는 JIT(Just-In-Time) 컴파일러라서 더 높은 효율을 내려면 컴파일을 미리해놓는것이 좋다. 그렇게 하려면, 함수로 만들어 놓으면 빠르다! 그럼 함수를 만드는 법을 알아보자. BASIC FUNCTION 기본 함수 아래의 이차 급수(Quadratic Series)를 구하는 함수를 예로 들어 보자. function sum_series(n) x = 0 for k in 1:n x = x + (1/k)^2 end return x end 99위 코드를 실행한 뒤 실행했던 REPL터미널에서 위 함수를 실행해 보자. 굳 잘 작동한다. ARRAY FUNCTIONS AND THE DOT OPERATOR 어레이 함수와 닷연산 스칼라 값에만 적용하는 것이 .. 2021. 10. 11.
[Julia] 기본1 - 3. 반복문(Loop 문) 사용하기 링크의 내용을 공부하며 제멋대로 번역한 내용입니다. SIMPLE FOR LOOP 간단한 반복문 반복문은 다음과 같이 파이썬에 end가 붙은 요상한 짬뽕 방법이다. for iterator in range excute_statements(iterator) end 예를 들어서 100,000개의 (1/x)^2을 더하면 다음과 같다. x=0 for k in 1:100000 x = x + (1/k)^2 end 이 예시에서 우리가 알 수 있는 것은, 포문에서 반복되는 정수는 1:100000 따위로 콜론을 사용하면 되고, 제곱수는 ^를 사용하면 된다는 것이다. NESTED FOR LOOPS 다중? 중첩? 반복문 다른 언어에 비해 신기한 구문을 가지고 있다. 배워왔던 언어들을 가지고 반복문을 여러겹 겹쳐 사용했을때는 보.. 2021. 10. 11.
[Julia] 기본 - 2. VSCode로 줄리아 시작하기 링크의 내용을 공부하며 제멋대로 번역한 내용입니다. 이제 줄리아 개발환경을 만들고 VSCode를 이용해서 "Hello, world!"를 출력할 차례다. 자! 이제 시작이야. INSTALLING JULIA AND VSCODE 줄리아 VSCode 설치 아직 줄리아를 설치하지 않았다면 링크에 들어가 다운로드하자. 윈도우 / 맥OS / 리눅스계열의 운영체제를 모두 지원한다. 혹시, VSCode가 없다면 링크를 통해 설치하길 바란다. 그리고 VSCode에서 줄리아를 사용할 수 있도록 extension도 설치해야한다. 아래처럼 VSCode에서 추가할 수 있다. Starting The Julia REPL 줄리아 REPL터미널 실행 위 설치를 마쳤다면, VSCode에서 줄리아 REPL(read-eval-print lo.. 2021. 10. 7.
[Julia] 파이썬 마냥 가상환경 구축해서 사용하기 시작도 하기 전에 겁을 먹은건 패키지 관리였다. 파이썬마냥 콘다로 가상환경을 구축할 수 있으면 익숙하게 패키지 관리를 할 수 있을거라 생각했다. 그래서 찾아봤는데, 역시나 고민한 사람들이 있다.(스택오버플로 짱) 질문조차 똑같다. 거의 콘다랑 비슷하게 사용하는 듯 하다. 결국 사용해 봐야 알겠지만 말이다. Pkg 이거는 라이브러리 다운받을 때도 사용하는거 같은데, 패키지 관리도 함께 해주니 너무 감사하다. 사용해보고 추가적으로 글을 이어가겠다. 2021. 10. 5.
전문연구요원 전직 준비과정 수정 로그 - 2021.06.11 - 2021.10.05 대기업 전직 관련 : 2021.01.01 이후 최초로 편입된 전문연구요원은 대기업 연구기관으로 전직이 제한됨 2019년부터 전문연구요원으로 복무중이며, 이제 1.5년이 지나 전직 절차를 밟고 있는 중이다. 현 근무중인 회사가 마음에 안든다기보다는, 주어진 3년간 더 다양한 일을 경험해보고 싶은 욕심이 들어서이다. 여튼 전문연구요원 전직을 준비하면서 너무 복잡한 절차덕에 고생좀 했기 때문에 이 과정을 정리해서 다른 후배(?)분들에게 도움이 되고자 글을 쓴다. 사실 전문연구요원이 아니더라도 일을 하면서 이직을 준비한다는 것은 여간 쉬운 일은 아니다. 면접을 보기 위해 연차를 소비해야하며, 일을 마치고 지진 몸을 이끌고 면접준비를 해야한다. 그렇게 이직.. 2021. 10. 5.
[Julia] 기본 - 1.줄리아 언어로 수치해석 하기 링크의 내용을 공부하며 제멋대로 번역한 내용입니다. WHY 왜 줄리아 인가? 줄리아는 고성능이고, 범용 오픈소스 언어다. JIT(just in time) 컴파일러로 C/Fortran 급 속도를 지니며, Matlab/Python 마냥 쉽다. 그러니까 줄리아를 사용해야한다. FEATURES 몇 가지 특징 줄리아 특징은 많은데, 공학/과학 분야에서 관심가질만한 내용은 아래와 같다. JIT 컴파일 가능! 컴파일러/인터프리터/JIT 개념을 공부해보자(아직부족) 아무튼 한행씩 분석하지 않고 java/C# 마냥 중간언어로 바꿔 준다. 이 특징은 특히 크로스 플랫폼이라는 강점이 있는데, 아직 사용 안해봐서 잘 모르겠다. 배우다보면 알겠지. 컴파일된 프로그램마냥 빠르단다. 선택적 입력? 이건 사용하기 전에는 잘 모를거같.. 2021. 10. 5.
윈도우에 리눅스 개발 환경 구축 - 1. WSL 설치 01. 리눅스용 윈도우 하위시스템 활성화 제어판을 열고 [제어판 - 프로그램 - 프로그램 및 기능 - Windows 기능 켜기/끄기] 를 찾아들어가면 “Linux용 windows 하위 시스템”을 찾을 수 있을 것이다. 체크박스를 체크하고 확인을 눌러주면 설치가 되는데, 설치가 완료되었다면 이후 세팅절차를 진행하기전에 PC를 재부팅하도록하자. 02. 우분투/윈도우 터미널 설치 이제 껍데기를 씌워줄 차례이다. ubuntu 및 terminal을 깔아줄 것인데, 모두 마이크로소프트 스토어에서 제공하고 있다. 리눅스 OS인 우분투와 바탕화면(?) 역할을 수행해줄 터미널이라고 생각하면 꼭 필요한 작업이다. 윈도우 키를 누르고 Microsoft Store를 검색해 스토어를 열어보자. 그리고 검색창에 ubuntu 및 .. 2021. 7. 20.
전문연구요원 전직 과정 - 후기 2019년 10월부터 전문연구요원으로 군 복무 중입니다. 현재는 전직을 하여 새로운 회사에서 군복무를 수행 중에 있습니다. 2021년 5월에 전직을 하였으니 딱 1년 6개월이 경과하면서 이직을 하게 되었습니다. 전문연구요원 전직이라지만, 결국 이직과 다를 바 없습니다. 보통 회사에 문제가 있다거나 상사가 괴롭히는 문제로 이직을 결심하게 된다죠..? 사실 저는 감사하게도 회사 자체의 문제나 상사의 괴롭힘은 전혀 없이 근무하기 좋은 환경이었습니다. 하지만 하는 일에 대한 의미가 없고 동기부여도 전혀 안된다는 또다른 문제가 있었습니다. 의미충이라... 흥미가 없으면 삶에 도움이 되는 기술이라도 되면 좋겠는데 그렇지 못했습니다. 그렇다고 재미없는 일을 하루 9시간씩 들여가며 할만큼 돈을 많이 주는 것도 아니었습.. 2021. 6. 12.
[해양수치모델] 지형 평활화가 수질모델에 미치는 영향 ■ 비정형 격자(수평/수직) SCHISM모델은 수평 수직격자 모두 비정형격자를 사용하기 때문에, 지형 평화화(단순화) 과정이 필요없다. 따라서 개발자들은 지형 평활화의 영향에 대해 연구해 볼 수 있게되었고, 그에따른 수질모델에 미치는 영향을 분석하였다. 아래는 그 초록을 번역한 것이다. 논문소개(초록) 체서피크만을 대상으로 3차원 비정형격자 유동/수질모델(SCHISM-ICM) 모의를 진행하였다. 1991-1995에 본류와 몇몇 주요지류에서 관측된 염분, 클로로필-a, 용존산소, 영양화(nutrients), 플랑크톤 생산(phytoplackton productions)에 대해 스킬스코어(Normalized bias, Normalized unbiased RMSE)에 기반하여 모델을 검증하였다. 이 연구에서는.. 2021. 2. 18.