전체 글

흔한 컴공 출신 개발자입니다. 제가 경험하고 공부하고 아는 것을 적어둡니다.
· JAVA
이번에 괜찮은 블로그 하나를 medium이 추천해줬습니다. https://ds73306.medium.com/must-know-java-interview-questions-7c7208a10669 Must know Java interview questions In this article we will see some of the must know and frequently asked java questions in interviews, This is a compilation with my personal… ds73306.medium.com 인터뷰를 떠나서 내 지식을 평가하는데 괜찮을 것 같고 모르는 부분들은 공부하면 상당히 도움이 될 것 같아 정리합니다. 피드백이나 문의는 댓글로 부탁드립니다. Q1. JDK..
· JAVA
나름 정리한다고 해봤는데 너무 어렵다.. 계속 보완을 해야한다. 가비지 컬렉터는 두 가지 전제 조건(Weak Generation Hypothesis)을 기반으로 만들어졌다 대부분의 객체는 금방 접근 불가능 상태(unreachable)가 된다. 오래된 객체에서 젊은 객체로의 참조는 아주 적게 존재한다. JVM의 종류가 많은 만큼 GC또한 다양한 벤더가 배포했다. 그래도 모든 GC는 다음 원칙을 지켜야한다. GC알고리즘은 반드시 모든 Grabage를 수집해야 한다. 아직 살아있는 객체는 절대 수집해서는 안된다. 아직 살아있는 객체를 수집하면 Segmentation Fault가 일어나거나 프로그램 데이터가 조용하게 망가진다. Segmentation Fault Segfault로 줄여서 말하기도 한다. 프로그램이..
· JAVA
- 피드백이나 문의는 댓글 부탁드립니다. 0. 이 글을 작성하기 시작한 이유 회사에서 인턴을 하시는 분이 나에게 질문을 했다. "JAVA에서 string을 보통 string str = "abc"; 이런 식으로 표현하는데 분명 레퍼런스 타입이면서 new()로 표현을 안 하면 메모리에서 언제 제거될까요? 이 방법이 메모리에 적합한 방법일까요?" 전에 StringBuilder에 대해 간단하게 글을 작성한 적이 있었다.(https://developer-youn.tistory.com/14) 근데 new()로 하는 것과 ""로 하는 것에는 정확히 어떤 차이가 있을까 1. 과거 기억 소환 일단 기억을 더듬어보자. new 키워드를 통해 객체를 생성하면 heap영역에 할당이 되고 heap 영역에 존재하는 것들은 GC의 ..
· JAVA
접근제어자는 4가지가 있다. default public protected private 1. default 필드나 메서드에 접근제어자를 지정해주지 않는 경우 내부적으로 default 접근제어자를 지정해준다. default 접근제어자로 지정된 필드, 메서드는 해당 패키지 내에서 자유롭게 접근이 가능하다. 2. public 어감 그대로 어디서든 자유롭게 접근할 수 있다. 3. protected 해당 패키지와 해당 클래스를 상속받은 다른 패키지 내 클래스에서도 접근할 수 있다. 4. private 해당 클래스를 제외하고는 어디서도 접근할 수 없다. 아래 그림과 함께 보면 이해가 조금 더 쉬울 수 있다. 이제 의문이 들기 시작한다. 왜 코드를 다른 곳에서 못쓰게 막아야 할까? 이 의문에 대한 내 생각을 간단하게..
이전 글에 이어서 EasyOCR을 저는 어떻게 사용했는지 설명하도록 하겠습니다. 이전 글 developer-youn.tistory.com/45 우리 EasyOCR로 한번 가자(1) OCR을 사용해야 하는 상황에서 만약 장비와 시간의 여유가 있다면 Python으로 EasyOCR을 한 번쯤 사용해보는 것도 좋을 것 같습니다. github.com/JaidedAI/EasyOCR 위 주소는 EasyOCR 공식github 주소입니다. 1... developer-youn.tistory.com 기본 코드 구조는 아래와 같습니다. import easyocr reader = easyocr.Reader(['ko','en']) # need to run only once to load model into memory resul..
OCR을 사용해야 하는 상황에서 만약 장비와 시간의 여유가 있다면 Python으로 EasyOCR을 한 번쯤 사용해보는 것도 좋을 것 같습니다. github.com/JaidedAI/EasyOCR 위 주소는 EasyOCR 공식github 주소입니다. 1. 그래서 EasyOCR이 뭔데? 우선 EasyOCR에 대해서 설명을 적어봅니다 EasyOCR은 OCR 오픈소스로 Detection부분과 Recognition부분으로 나누어져 있으며 Text Detection은 CRAFT를 사용하고 Recognition은 CRNN사용합니다. Framework는 모든 소스가 pytorch로 작성되어있습니다. pytorch는 tensorflow처럼 딥러닝을 위한 프레임워크로 tensorflow보다 좀 더 pythonic하게 코드를..
· dart/Flutter
뭔가 갑자기 Flutter를 해보고 싶어서 tutorial을 따라 해 봤는데 구조를 이해 못하겠습니다. 그래도 뭔가는 남기고 싶어서 간단하게 글을 적습니다. 1. 설치 flutter-ko.dev/docs/get-started/install/windows 윈도우에서 설치 flutter-ko.dev document에서 알려주는대로 진행하면 되는데 우선 flutter sdk를 다운로드하고 환경변수를 잡아줍니다. 환경변수 path에 들어가는 경로 PATH/TO/flutter/bin (참고로 저는 android나 ios가 아닌 chrome에서 모든 tutorial app을 실행했습니다.) 이후 설치가 잘 되었는지 확인하기 위해 콘솔에서 명령어를 실행합니다. flutter doctor 근데 이 와중에 에러는 안나오..
· JAVA
Java로 프로그래밍하는 경우 IDE의 선택지가 좀 있는 편인데 저는 Eclipse를 사용합니다. 사람들은 그 무거운 거 왜 쓰냐 차라리 IntelliJ 쓰지 라고 하는데 회사에서도 이걸로 개발 읍읍 적응되고 단축키도 알아가니 생각보다 좋습니다. 무튼 Eclipse 시리즈의 첫 글로 디버깅에 대해 이야기를 해보고자 합니다. 학부 때 학교에서 잘 안 알려주는 것 중 하나가 디버깅입니다. 맨날 디버깅하라고 하는데 알려주지는 않더라고요. 그래서 정말 간단한 정도로만 여기에 사용법 정도로 올릴테니 반드시 읽어주셨으면 좋겠습니다. 근데 디버깅이 뭔지 모를 수 있어요. 저도 정의는 잘 몰라요.. 꺼무.. 아니 나무위키에서 설명된 글을 옮겨봤습니다. 디버그(Debug)는 프로그래밍 과정 중에 발생하는 오류나 비정상적..
회사에서 비전 딥러닝을 담당하고 Tensorflow Object Detection API를 사용하던 중 훈련 중에 발생한 에러들이 있다. 모두에게 반드시 통용되지는 않겠지만 일부 나와 같은 오류를 겪고 헤매는 사람들을 위해 올린다. 1. Invoke with: None, value error 위와 같은 에러는 명령어를 입력할 때 argument에 값을 잘못 넣은 경우이다. 오타 혹은 경로에 문제가 있는지 다시 확인하면 잘 고쳐졌다. 2. loss = nan loss값이 nan으로 찍히는 경우가 있다. 이는 total step이나 learning rate를 높게 설정하면 발생하는 문제로 역전파 과정에서 값이 증폭되며 loss에 찍힐 수 있는 값의 범위를 넘어가면 발생한다고 한다. total step을 무작..
알 수 없는 알고리즘으로 해당 사이트로 접근했다면 이전 글들을 읽고 오시기 바랍니다. developer-youn.tistory.com/35 developer-youn.tistory.com/36 이번 글은 크게 어려움이 없었습니다. 그래서 전체적으로 어떻게 진행했는지 작성하는 글입니다. 여기까지 따라오신 분들을 위해 현재 과정의 대략적 구조를 보여드리겠습니다. 8. 데이터 레이블링과 포맷 변환 데이터 레이블링은 labelImg 를 이용해서 진행합니다. 학습 데이터는 xml파일로 저장이 되며 아래 글은 labelImg를 통해 각 이미지 별 xml파일이 생성되었다는 가정하에 작성을 하겠습니다. xml파일을 csv파일을 거쳐 record파일로 만들기 위해 아래 코드를 clone합니다. git clone 이미지 ..
Berno
흔한 컴공 출신 개발자