본문 바로가기

프로그래밍 공부19

JVM의 GC 안녕하세요! 조엘입니다! 🎉 오늘은 JVM의 GC에 대해 알아보는 시간을 가져볼게요! 💪💪 피드백 환영입니다! 댓글 달아주세요 :) *** GC가 동작하는 법 *** 기본적인 GC의 동작은 해당 포스팅에서 다루었어요! 해당 포스팅의 내용에 의존하고 있으니 이를 먼저 읽어보시는 것을 추천합니다 :) https://papimon.tistory.com/93 저는 GC가 처음이라니까요? 안녕하세요! 조엘입니다! "처음이라니까요" 시리즈 열한 번째 토픽은 GC입니다. 🙌🙌 C나 C++을 다룰 때는 메모리 관리를 직접 명시적으로 해줬어요. 하지만 JAVA, JavaScript, Python 등을 쓰면서부터 joel-dev.site Java에서의 GC, 즉 JVM의 GC는 기본적으로 Mark And Sweep 방식으.. 2021. 10. 3.
Reflection API 안녕하세요! 조엘입니다! 🎉 오늘은 자바의 Reflection API에 대해 알아보는 시간을 가져볼게요! 💪💪 피드백 환영입니다! 댓글 달아주세요 :) *** Reflection API란? *** Reflection API의 정의를 먼저 알아보도록 해요. 공식문서에서는 다음과 같이 Java Reflection API를 설명하는데요. Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fields, methods, and constructors to operate on their underlying counterpar.. 2021. 6. 9.
HashMap/HashSet의 원리 안녕하세요! 조엘입니다! 오늘은 HashMap과 HashSet이 어떻게 데이터를 저장하는지에 대해 한번 알아보아요! 💪 피드백 환영입니다! 댓글 달아주세요 :) *** HashMap *** HashMap은 Map 인터페이스를 구현한 컬렉션이에요. Map 인터페이스는 Key Object와 Value Object를 같이 저장하는 데이터 구조예요. Key Object를 기반으로 데이터를 저장하고, 접근하기 때문에 Key Object는 고유해야 해요. 따라서 Key Object는 중복해서 저장할 수 없어요. 또한 저장 순서와 출력 순서를 보장하지 않는 데이터 구조라고 알려져 있어요. *** HashSet *** HashSet은 Set 인터페이스를 구현한 컬렉션이에요. HashSet은 내부적으로 HashMap으로.. 2021. 3. 13.
Java Code Conventions 우아한테크코스 1차에 합격했다! 이제 3주 동안의 프리코스를 거칠 텐데, 그전에 자바 코드 컨벤션을 공부해보도록 한다. 몸이 너무 안 좋아서 글을 읽는 게 도저히 안 되더라ㅜㅜㅜ 이미 잘 정리해주신 선배님들의 글을 참조하면서, 블로그에 포스팅하며 공부하기로 해본다. 미리 얘기하지만, 거의 베끼다시피 한 포스팅이다. 개인 공부를 위해 남긴다! 참조한 포스팅 : myeonguni.tistory.com/1596 [코딩규칙] 자바 코딩 규칙(Java Code Conventions) [코딩 규칙] 자바코딩 규칙(Java Code Conventions) 자바 프로그래밍 언어 코딩 규칙 원문 : Oracle / Code Conventions for JavaTM Programming Language / 1999-4-2.. 2020. 11. 24.
0. 시작 알고리즘 공부를 하나씩 시작! 조금씩 꾸준히 순서대로 준비를 해보도록 하자! +) 프로그래머스 정책에 따라 해당 문제풀이 포스팅은 비공개로 전환하였습니다. (2021.09.26~) 2020. 9. 3.
행렬 곱셈 최적화 2편 안녕하세요 조엘입니다! 프로젝트로 진행한 행렬곱셈 최적화에 대한 포스팅을 진행하도록 하겠습니다. 소스코드는 https://github.com/joelonsw/Matrix-Multiplication-Multithreading에서 확인하실 수 있습니다! DNS알고리즘을 통해 병렬처리를 진행했지만, multi 함수는 KIJ 방식 그대로여서 LLC miss rate가 개선되지 못했습니다. 이를 개선하고자 Tiling 방법을 도입했습니다. 매트릭스의 메모리에 접근할 때, 왼쪽과 같이 탐색하게 되면, 매트릭스의 사이즈가 캐시의 사이즈보다 큰 경우, 매트릭스 탐색 후 다시 매트릭스의 첫요소에 접근할 때 캐시에 남아있지 않게 됩니다. 이를 방지하고자 Tiling 방법을 도입했는데, 이는 캐시에 남아있을 때 해당 배열에.. 2020. 7. 23.
행렬 곱셈 최적화 1편 안녕하세요 조엘입니다! 프로젝트로 진행한 행렬곱셈 최적화에 대한 포스팅을 진행하도록 하겠습니다. 소스코드는 https://github.com/joelonsw/Matrix-Multiplication-Multithreading에서 확인하실 수 있습니다! 저는 총 4가지 단계를 거쳐 최적화를 진행했습니다. 1.인덱싱 순서를 바꾸어 캐시 hit ratio을 증가시켰습니다. 2.멀티 쓰레딩을 통해 병렬처리를 진행하였습니다. 3.타일링 기법을 통해 캐시 hit ratio를 증가시켰습니다. 4.SIMD를 통해 한번에 많은 데이터를 처리할 수 있게 하였습니다. 실험은 다음과 같은 환경에서 진행했습니다. 모든 소스코드는 C++로 작성을 했고, g++ version 7.5.0을 사용했습니다. 컴파일 옵션은 최적화 옵션을 .. 2020. 7. 23.
C언어 복습 <part4> 안녕하세요. 파피몬입니다. 이번 겨울방학에 최호성 선생님의 "독하게 시작하는 C프로그래밍" 책을 유튜브 강의와 함께 공부하였습니다. 강의를 들은 내용을 종이에 정리하였고, 이 중 중요하다고 판단한 내용을 포스팅 하도록 하겠습니다. 아직 모르는 게 많은 학생이라 오개념이 있을 수 있습니다. 친절하게 댓글로 알려주시면 좋은 공부 될 것 같습니다!! 이번 Part4에서는, 11단원. 메모리와 포인터에 대해서 복습해봅니다. 내용이 많아 정리는 PDF로 대신하고, 자주 쓰는 함수에 대해서 정리하였습니다. 1. 동적 할당 함수 및 멤버 초기화 void *malloc(size_t size); // 인자 : size == 할당 받을 메모리 바이트 단위 크기 // 반환값 : 힙 영역에 할당된 메모리 덩어리 중 첫 번째 .. 2020. 3. 24.
C++ 5단원 복습! (2편) 안녕하세요. 파피몬입니다. 이 복습 내용은 최호성 선생님의 "이것이 C++이다"를 공부하고 작성하였습니다. 아직 모르는 게 많은 학생이라 오개념이 있을 수 있습니다. 친절하게 댓글로 알려주시면 좋은 공부 될 것 같습니다!! 5단원에서는 연산자 다중정의에 대해서 배워봅니다. 1편, 2편으로 나누어져 있습니다. Chapter 5. 연산자 다중정의 6. 배열 연산자를 다루기 전, const가 지정하는 대상이 무엇인지 정확히 인지할 필요가 있다. ** http://egloos.zum.com/chideout/v/4158795 정리가 잘 되어 있는 이 포스팅을 통해 공부하였다. ** const class_name operator+( const class_name&) const { } 라는 메소드가 있다고 가정하자... 2020. 3. 22.
반응형