전체 글 43

[JAVA 고급1] 3. 스레드 제어와 생명주기 1

스레드 생명 주기 OS에서도 많이 본 그림인데 하나씩 살펴보면 - New 스레드가 생성되었지만 시작되지 않은 상태 start 메서드를 호출하지 않은 상태이다. - Runnable 스레드가 실행중이거나 실행될 준비가 된 상태 start 메서드를 호출하면 해당 상태로 들어간다 OS 스케줄러가 각 스레드에 CPU 시간을 할당해 실행하기 때문에 (time waiting) Runnable 상태 스레드는 실행 대기열에 포함되었다가 차례로 CPU에서 실행된다. - 자바에서는 이를 구분할 수 없다 - 일시 중지 상태들 - Blocked : 스레드가 락을 기다리는 상태 (뒤에서 synchronized와 모니터 락을 배운다) - Waiting : 스레드가 무기한으로 다른 스레드의..

SUMMARY/JAVA 2025.08.13

[JAVA 고급1] 2. 스레드의 생성과 실행

Java 메모리 구조 Java 메모리는 3가지 영역으로 구성되어 있다 - 메서드 영역 Method Area 프로그램을 실행하는데 필요한 공통 데이터를 관리한다 그러므로 프로그램의 모든 영역에서 공유 안에 있는 3가지는 각각 클래스 정보 : 클래스 실행 코드, 필드, 메서드, 생성자등 모든 실행코드 static 영역 : static 변수 보관 런타임 상수 풀 : 공통 리터럴 상수 - 스택 영역 Stack Area 스레드 별 하나의 실행 스택이 생성된다 (스레드 수 만큼 스택이 생성된다) 네모칸 하나가 스택 프레임이고 지역 변수, 중간 연산 결과, 메서드 호출 정보를 포함한다 메서드를 호출할 때 마다 하나의 스택 프레임이 쌓이고, 메서드가 종료되면 해..

SUMMARY/JAVA 2025.08.11

[JAVA 고급1] 1. 프로세스와 스레드

자바 멀티 스레드를 이해하기 위해 OS 수준의 프로세스와 스레드 환경을 이해해야 한다학교 운영체제 시간에 다 배우기는 했지만 맨날 헷갈리니 다시 정리 멀티 태스킹 멀티 태스킹과 프로세싱을 이해하기 위해 단일 CPU라고 가정하자 (하나의 CPU 코어) 하나의 코어가 하나의 일만 할 수 있다면?즉 하나의 프로그램만 실행할 수 있다면 A프로그램이 다 돌아가고 B프로그램이 돌아가게 될 것이다.밑에 그림처럼 이를 해결하기 위한 것이 멀티 태스킹이다. 멀티 태스킹이 가능하다면 위 사진처럼프로그램 A, B를 짧은 시간동안 번갈아가며 실행한다그리고 사용하는 입장에서는 A와 B가 동시에 실행되는 것 처럼 느껴질 것이다. (현대 CPU는 1초에 수십억번의 연산이 가능하기 때문에 우리는 이렇게 번갈아 가며 수행하는 ..

SUMMARY/JAVA 2025.08.11

[알고리즘] JAVA 코테 정리 - 자료구조 편

급하게 정리해보자 기본이라도급하게 공부하면서 쓴거라 가독성 좋지 못함 주의,,, - import java.util.*; 문자열 정렬 - 로그파일 재정렬https://leetcode.com/problems/reorder-data-in-log-files/ 기억할 포인트- arrayList를 array로 반환할때 -> letterList.toArray(new String[0]); - 정렬할때 람다 (추가 로직이 필요해서) -> letterList.sort((o1, o2) -> { ; }); - Compare 로직 스플릿 하고int compare = split1[1].compareTo(split2[1]);여기서 같으면 0크면 1작으면 -1 그냥 return compare 하면 정렬이 되는데..

ALGORITHM 2025.06.26

[포스트맨] OAuth 테스트

사용법 정리 맨날 찾으면서 하는게 귀찮아서 구글을 예시로 써놔야겠다 https://oauth.pstmn.io/v1/callback https://oauth.pstmn.io/v1/callbackYour call is authenticated A new window should open directing you back to the Postman app. If nothing happens, check to make sure your browser allows pop-ups.oauth.pstmn.iohttps://accounts.google.com/o/oauth2/v2/auth 로그인 - Google 계정 accounts.google.com https://oauth2.googleapis.com/tok..

PROJECT 2025.06.17

[회고] 25-1 회고

1학기인생에서 제일 바빴던 1학기가 끝났다. 평점 60점 이하는 F이고 70점만 맞으면 A+인 교양수업이 있는데너무 불안하다.. 설마ㅜㅜㅜㅜ A+ 받았다 ㅎㅎ:) 이번에 했던거- 학교 수업- 졸업 프로젝트- 세오스 활동- 팝업싸이클(룹즈)- 알고리즘- AWS 스터디- 농림 축산 공모전 개발- 배리어프리 서류작성 -> 탈락ㅜ- 갭이어 서류+면접 -> 합- 하나 소셜벤처 서류 + 면접 -> 합- 인턴 서류 넣기 -> 탈락.... 뭘 이렇게 많이 했니..이제 고만 일 벌이고 하고 있는 것만 잘하자 평가- 깊이 있는 기술 시도 지난 학기에는 스스로 기술적으로 깊이 들어가본 적이 없다고 생각해 아쉬웠는데 이번엔 나름 파본 것 같다. (아직 부족) - 서류 이번에 가장 서류를 많이 써본 것 같은데 서류 ..

ETC 2025.06.17

[소프트웨어 공학] 12. 품질

소개품질을 높이는 활동으로 - 테스트 테스트는 코드 품질만 향상시킨다- 리뷰 이래서 extreme programming이 좋다고 하셨다. 리뷰를 많이 하니깐- 품질보증 즉 품질의 모델은(품질의 속성은) 작업 관점이 어디 있는가에 따라 달라질 수 있다. 고객 만족이 품질에 들어가 있기 때문에 요구사항을 더욱 명확하게 정해야 한다고 하셨다. 요구 사항을 잘 검토 하는것 자체가 품질 관리에 들어가 있다. 구체적인 설명이 필요한 속성들만 적어보면 효율성- 성능이 좋지 않은 cpu와 적은 메모리로도 돌아가는가재사용성- 품질이 구조적인가 그동안 배웠던 결합도, 응집도, 디자인 패턴의 적용 유무 등 품질 특성 위에 있는 항목은 각각- 품질 요소 : 사용자에 의한 외부 관점- 품질 ..

[소프트웨어 공학] 10. 테스팅 추가

검토, 확인 개정판에서 검증 -> 검토로 바뀌었다 - 검토 verification 이게 리뷰다 올바르게 하고 있는가? 과정을 전부 검토 - 확인 validation 이건 결과물에 대한 확인 테스트 기초 용어로 4가지가 있다- 버그 문제, 결함을 나타내는 일반적인 용어 - 오류 개발자가 잘못하여 설계나 코딩에 실수한 것 EX) 오버플로우를 고려하지 않고 설계한 것 - 결함 시스템이 고장을 일으키게 하는 오류의 결과 - 고장 시스템이 원하는 작업을 수행할 수 없는 상황 테스트 하네스 Test Harness시스템 일부 기능만 시험하기 위해 소프트웨어에 변경을 가하는 경우이다. 키워드 기반 테스팅테스트 자동화 프레임워크의 일종으로테스트의 각 단계를 설..

[소프트웨어 공학] 10. 테스팅, 11. 유지보수

Junit 단위 테스트 실습을 진행했다스프링은 아니고, 순수 자바 코드이고 쉬운 실습 public class StudentManager { private Set students = new HashSet(); //학생 추가 public void addStudent(String name) { if (students.contains(name)) { throw new IllegalArgumentException("이미 존재하는 학생입니다: " + name); } students.add(name); } //학생 제거 public void removeStudent(String name) { if (!stu..