Nulog
article thumbnail
2023.05.09 20일차. Section1 KPT 회고

[목표] 🚩 은행 개발자로 취업 → 금융권 개발 경력을 기반으로 → 개발자로서 토스 복귀…! 우선은 JAVA 언어 마스터 목표 [Keep] 꾸준히 알고리즘 문제 푸는 것. 우선은 lv.0 문제부터 모두 마스터 정규 과정 놓치지 않고 성실하게 잘 따라가는 것. [Problem] 나태함과 오만함을 경계 금융 IT에 대한 지식 부족 객체지향 이해도 부족 [Try] 때때로 lv2~3문제를 보며 아직 갈길이 멀다는 것 자각하기 → 오만함 방지 꾸준한 운동을 통해 공부할 체력 기르기 → 나태함 방지 금융 IT 산업 관련 기사/이슈 센싱 → 관련 산업 지식 함양 객체지향에 대한 주기적 복습 [우선순위] 심화실습 다시 운동.. 진짜 빠르게 다시 시작해야함.. 금융 IT에 대해 관심갖고 주기적으로 찾아보기 꾸준히 프로그..

article thumbnail
2023.05.08 19일차. Thread와 JVM

19일차. Thread와 JVM. 자바 코드 실행 시 컴퓨터 내부에서 일어나는 일에 대해 자세히 배웠다. 코드를 실행시키기 위해 리소스를 할당하면 스레드들이 일을 하고, 코드를 번역해 컴퓨터에 전달하면 컴퓨터는 실행을 위한 메모리를 할당해 작성된 클래스, 객체 등등을 저장할 위치를 판별하여 저장하고, 실행하고 삭제하는 과정이 진행된다. 개념적으로 어느정도 이해는 됐으나, 개발에 있어 어떤 도움이 될지 아직은 잘 모르겠다. 당분간은 대략적으로 이런 일들이 일어나는 구나 정도만 알고 있게 될 것 같다. [JAVA] Thread(1) 스레드의 정의와 생성 방법 Thread(1) 스레드의 정의와 생성 방법 Thread(2) 동기화 Thread(3) 스레드의 상태와 실행 제어 프로세스와 스레드 (Process &..

article thumbnail
[JAVA] JVM이란?
JAVA 2023. 7. 18. 10:32

JVM(JAVA Virtual Machine)? 자바로 작성한 소스 코드를 해석해 실행하는 별도의 프로그램이다. 요약하면, 자바 프로그램을 실행시키는 도구라고 할 수 있다. 프로그램 실행을 위해서는 CPU와 메모리 등 각종 컴퓨터 자원이 필요하다. 운영체제는 실행을 위한 가용 자원을 확인한 후 할당한다. 이 때, 프로그램이 실행을 위해 컴퓨터에 자원을 요청하는 방식이 운영체제마다 다르다. JVM은 프로그램이 운영체제와 관계없이 소통할 수 있도록 중간에서 통역가 역할을 한다. JVM의 구조 소스 코드 작성 후 실행 시, 컴파일러 실행 컴파일의 결과: Source Code -> Byte Code 이후 JVM은 운영체제로부터 소스 코드 실행에 필요한 메모리(Runtime Data Area)를 할당받는다. 클래..

article thumbnail
[JAVA] Thread(2) 동기화
JAVA 2023. 7. 18. 02:33

Thread(1) 스레드의 정의와 생성 방법 Thread(2) 동기화 Thread(3) 스레드의 상태와 실행 제어, 그리고 메서드 스레드 동기화 만약 멀티 스레드로 진행될 경우, 두 스레드가 병렬로 데이터에 접근한다. 즉 스레드의 작업을 통해 데이터가 변경됐을 때, 다른 스레드는 변경사항을 반영하지 않은 상태로 다시 데이터를 변경한다. 이러한 방식은 데이터 처리에 문제가 발생할 수 있다. 이러한 문제를 해결하기 위해 스레드 동기화가 필요하다 임계영역과 락 임계영역으로 설정된 코드 영역에서는 오로지 하나의 스레드만 코드를 실행할 수 있다. 락은 임계영역을 포함하고 있는 객체에 접근할 수 있는 권한을 가진다. 즉, 임계 영역으로 설정된 객체가 다른 스레드에 의해 작업이 이루어지고 있지 않다면, 어떤 스레드 ..

article thumbnail
[JAVA] Thread(1) 스레드의 정의와 생성 방법
JAVA 2023. 7. 18. 02:01

Thread(1) 스레드의 정의와 생성 방법 Thread(2) 동기화 Thread(3) 스레드의 상태와 실행 제어 프로세스와 스레드 (Process & Thread) 프로세스란? CPU에 의해 메모리에 올려져 실행중인 프로그램 프로그램은 자신만의 메모리 공간을 포함한 독립적인 실행 환경을 가지고 있다. 우리가 사용하는 프로그램 중 일부는 여러 프로세스 간 상호작용을 하는 것일수도 있다. 자바 JVM(Java Virtual Machine)은 주로 하나의 프로세스로 실행되며, 동시에 여러 작업을 수행하기 위해서 멀티 스레드를 지원하고 있다. 2) 스레드란? 프로세스 안에서 실질적으로 작업을 실행하기 위해 필요한 명령의 흐름을 말한다. 즉, 스레드는 하나의 코드 실행 흐름이다. 프로그램이 실행되기 위해 일하는..

article thumbnail
2023.05.04 18일차. Stream 연습문제

18일차. Stream을 이용한 연습문제를 풀어봤다. 사실 어제 스트림 학습하고 나서 바로 연습하고 적용해보기 위해 한번 다 풀고, 오늘 다시 한번 풀기 위해 코드를 다 지워두었었다. 연습문제의 논리가 어려워서 못 푼다기보다, 스트림의 기능이나 활용법에 익숙치 않아 헤맨 게 더 많았다. 스트림의 기능이나 활용법에 대한 정리가 될 것 같다. 5번 (회원들 중, 남성 회원들의 평균 나이 구하기) ✎ Member 클래스를 이용해 회원의 이름, 성별, 나이까지 관리하려고 합니다. Member 타입을 요소로 가지는 List를 입력받아, 남성 회원들의 평균 나이를 리턴해야 합니다. ⨷ 반복문(for, while) 사용은 금지됩니다. ⨷ 회원의 수가 0이거나, 남자 회원이 없는 경우 0을 리턴해야 합니다. **map..

article thumbnail
2023.05.03 17일차. Annotation, Lambda, Stream

17일차. 프로그래머스 lv0 문제를 풀고 다른사람이 푼 코드를 보다 보면, Stream을 이용한 코드가 굉장히 많이 보였다. 복잡하게 반복문과 조건문을 열심히 돌려서 만들어낸 결과를 Stream 한줄로 끝내는 것을 보고 얼른 배우고싶다고 생각했는데, 드디어 만나다니 너무 반갑다. Stream 외에도 Lambda와 Annotation에 대해 배웠다. Lambda는 스트림을 사용할 때도 많이 쓰겠지만, Annotation은 본격적으로 개발을 배우고 나서부터 쓰일 듯!? 오늘 배운 주제들은 각각의 개별 포스팅으로 글을 대체한다. Annotation [JAVA] Annotation JAVA 및 여러 프레임워크에서 쓰이는 애너테이션의 개념에 대해 소개하려 한다. Annotation 소스 코드가 컴파일되거나 실행..

article thumbnail
[JAVA] Stream (3) 최종 연산
JAVA 2023. 7. 17. 22:13

Stream이란? 배열, 컬렉션의 저장 요소를 하나씩 참조하여 람다식으로 처리할 수 있도록 해주는 반복자. List, Set, Map, 배열 등 다양한 데이터 소스로부터 Stream을 생성할 수 있다. 생성된 Stream은 풍부한 메서드를 이용해 데이터 소스를 표준화된 방법으로 처리할 수 있다. 특징 스트림 처리과정은 생성-중간 연산-최종 연산의 세 단계 파이프라인으로 구성될 수 있다. 원본 데이터 소스를 변경하지 않는다. (Read-only) 일회용이다. (Onetime-only) 스트림은 내부 반복자이다. Stream(1) Stream 생성 Stream(2) 중간 연산 Stream(3) 최종 연산 Stream 최종 연산 기본 집계 count() 모든 Stream에서 사용할 수 있다. import ja..