전체 글

전체 글

    자바의 컴파일 과정

    자바의 컴파일 과정

    개발자가 .java 자바 소스코드를 생성한다. 자바 컴파일러에 의해 .java가 컴파일되어 .class 파일로 아직 컴퓨터가 읽을 수 없는 상태인 Java bytecode로 만든다. 컴파일된 변환 코드를 JVM의 Class Loder로 전달한다. Class Loader는 동적로딩을 통해 필요한 클래스들을 로딩 및 링크하여 Runtime Data Area에 올린다. 클래스 로더의 세부 동작 로드 : 클래스 파일을 가져와서 JVM의 메모리에 로드한다. 검증 : 자바 언어 명세 및 JVM 명세에 명시된 대로 구성되어 있는지 검사한다. 준비 : 클래스가 필요로 하는 메모리에 할당한다. 분석 : 클래스의 상수 풀 내 모든 심볼릭 레퍼런스를 다이렉트 레퍼런스로 변경한다. 초기화 : 클래스 변수들을 적절한 값으로 초..

    [우테코] 타미의 Servlet vs Spring

    매일 기술블로그 Review 2021-10-30 / 링크 [10분 테코톡] 🌻타미의 Servlet vs Spring / 정리 Servlet ? 웹 어프리케이션을 만들 때 필요한 인터페이스 탄생 처음 웹 프로그래밍은 정적 페이지만 불러와서 어느 사용자가 와도 같은 페이지를 출력했다. 사용자에 따라 다른 처리를 해줄 수 없었다. 그래서 동적 데이터를 처리하는 CGI의 탄생 CGI ? Web Server와 프로그램 사이의 규약, C , PHP 하지만 구현체를 만들 때마다 Process를 필요해 Thread 로 변경 그래서 여러 Instance에서 Singleton으로 변경 —> 오늘 날의 Servlet 특징 WebContainer 요청이 들어오면 Thread를 생산하고, Servlet을 실행시킨다. Servl..

    커밋 1일 1커밋 100일 회고록

    커밋 1일 1커밋 100일 회고록

    // 7월 22일에 시작하여 오늘인 10월 29일까지 순식간에 지나가버린 100일인거 같다. 처음에는 나의 성실함과 꾸준함을 시험해보고자 1일 1커밋을 기록했다. 처음 1주, 2주때는 잘 몰랐지만 한달이 지나고 두달이 지나면서 회색으로 가득 찬 공간에 초록색이 하나하나 심어질 때마다 뿌듯함과 성취감이 느껴졌다. 볼품없는 코드부터 개인 사이트를 제작하기 위한 코드들까지.. 시간이 지날수록 스스로가 점점 성장해 나가는 것을 느낀다. 단지 정신적인 것 뿐만아니라 마치 발자취와 같은 가시적인 기록이 쌓아가면서 더더욱 체감이 되는 기분이다. 이제 전체 100프로중 1퍼센트도 안되는 지점에 다다른 것 같다. 전에 포스팅에서도 말을 했지만 출발점과 도착점의 끝없는 연속이다. 요즘 나도 모르게 가끔씩 나태함에 빠지는 ..

    [우테코] 티버의 API vs Library vs Framework

    매일 기술블로그 Review 2021-10-28 / 링크 [10분 테코톡] 🙆‍♀️티버의 API vs Library vs Framework / 정리 API ( Application Programming Interface ) ? → 응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스 특징 구현과 독립적으로 사양만 정의되어 있다. API에 따라 접근 권한이 필요할 수 있다. Java API, 여러 기업들의 오픈 API 등이 있다. https://console.cloud.google.com/ 에서 필요한 API를 사용할 수 있다. Library ? 독립성을 가진다. 응용 프로그램이 능동적으로 라이브러리를 사용한다. 능동적 ? → 자신에게 필요한 라이브러리를 호출하여..

    [카카오] 5년 차 개발자의 카카오 적응기

    매일 기술블로그 Review 2021-10-27 / 링크 5년 차 개발자의 카카오 적응기 5년 차 개발자의 카카오 적응기 안녕하세요. 저는 스타크래프트 1 프로게이머 활동을 했었고, 이후 백엔드 개발자로 만 5년 차의 경력을 가지고 있는 카카오 광고 플랫폼 개발자 hero입니다. 작년 6월에 카카오로 합류하여 약 1년 tech.kakao.com / 소감 // 게임을 좋아하는 입장으로 오늘날에는 민속놀이라고도 불리는 스타크래프트1 프로게이머 활동을 하셨던분이 백엔드 개발자로 계셔서 신기함 반, 놀라움 반으로 이끌려 보게 되었다. 이렇게 보듯이 개발자의 직종이 누구에게나 열려있으면서도 아무에게나는 열려있지 않은 직종인 것 같다. 궁금증에 검색을 해본 결과 우아한형제들을 거쳐 카카오에 입사를 하셨고 현재는 토..

    JVM( Java Virtual Machine ) 이란

    JVM( Java Virtual Machine ) 이란

    이전의 문제 C / C++ 는 컴파일 플랫폼과 타겟 플랫폼이 다를 경우, 프로그램이 동작하지 않는다. Linux → Linux 는 이상이 없지만 Linux에서 컴파일한 파일은 Windows에서 동작하지 않는다. 해결책으로 크로스 컴파일(Cross Compile)로 타겟 플랫폼에 맞춰 컬파일한다. JVM (Java Virtual Machine)? 기술적 정의 → 코드를 실행하고 해당 코드에 대해 런타임 환경을 제공하는 소프트웨어 프로그램에 대한 사양 일반적 정의 → 자바 프로그램을 실행하는 방법이다. JVM 의 설정을 구성한 다음 설정사항에 따라 실행 중에 프로그램 리소스를 관리 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행시켜주는 역할 자바는 네트워크에 연..

    [네이버] 클린봇 2.0: 문맥을 이해하는 악성 댓글(단문) 탐지 AI

    매일 기술블로그 Review 2021-10-25 / 링크 클린봇 2.0: 문맥을 이해하는 악성 댓글(단문) 탐지 AI / 소감 // 인터넷이 출시함으로써 셀 수 없는 많은 장점들을 우리에게 안겨줬다. 하지만 장점이 있으면 그에 반대되는 단점도 당연히 생기기 마련이다. 그중 가장 문제가 되는 건 악성 댓글(악플)로 생각된다. 악플로 인해 많은 유명인들이 안타까운 선택을 하고 옳지 않은 방법을 택하기도 하기 때문에 사이버상에서 해결해 나가야 할 큰 문제점이다. 네이버는 악플을 줄이기 위해 '클린 봇 2.0 '이름을 가진 탐지 AI를 발표하였는데 그 과정에 흥미가 생겨 읽게 되었다. 순서로는 크게 데이터셋 구축 → 모델링 → 학습 → 전이 학습 → 최종 모델 선택 순서로 진행된다. 간단히 악플의 판단을 문자로..

    [Java] JVM과 자바의 버전별 변화

    [Java] JVM과 자바의 버전별 변화

    JVM 자바 코드를 컴파일해서 얻은 바이트 코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행시켜주는 역할 크게 Class Loader, Execution Engine, Garbage Collector, Runtime Data Area 로 나뉜다. 1. Class Loader .java파일을 컴파일하면 .class파일이 생성되는데 이렇게 생성된 .class파일을 엮어서 JVM이 운영체제로부터 할당받은 메모리영역인 Runtime Data Area로 적재하는 역할 자바 애플리케이션이 실행중일 때 수행된다. 2. Execution Engine Class Loader에 의해 메모리에 적재된 클래스(바이트 코드)들을 기계어로 변경해 명령어 단위로 실행하는 역할 하나하나 실행하는 인터프리터(Interpret..