전체 글

개발, PS 풀이
Study/Java

[Java] 자바의 스레드와 동작 과정

스레드 Thread 운영 체제를 배웠다면 스레드의 개념은 익히 알 것이다. 스레드는 프로그램 수행의 가장 작은 단위를 의미한다. 스레드는 한 가지 일을 하는 프로세스의 단점을 극복하고자 여러 가지 일을 동시에 하기 위해 탄생했다. 스레드는 다음과 같은 생성 주기를 갖는다. 💡 스레드의 생성 주기 Runnable: 준비 상태로 CPU 를 점유하고 있지 않으며 대기하고 있는 상태이다. Running: 실행 상태로 CPU 가 점유하고, 실행중인 상태를 의미한다. Dead: 수행할 동작이 모두 실행이 완료된 상태를 의미한다. Blocked: 실행 중에 일시 중단되어 CPU 점유를 잃은 상태를 의미한다. wait() 메서드를 통해 대기 상태로 전환되며, 대기 상태에서 notify() 메소드를 통해 Runnable..

Study/Java

[JUnit] 다양한 Assertions 사용하기

테스트 코드 작성의 중요성은 이제는 널리 알려져 있다. 어떤 코드든 예상치 못한 상황이 발생할 수 있기에, 이를 방지하고자 테스트 코드를 작성한다. 단위 테스트, 기능 테스트 다양한 기준으로 작성되며, 테스트 코드를 먼저 작성한 뒤 구현을 하는 TDD, DDD, BDD 등 다양한 개발 방법론도 존재한다. 테스트 코드 작성을 위해 다양한 도구들이 사용된다. 그중 Java를 테스트하기 이한 JUnit에 대해 간단히 살펴보고, 조금 더 다양하게 테스트하기 위한 Assertion 메서드들을 정리해보려 한다. JUnit 이란? JVM 위에서 쉽게 테스트를 할 수 있게 해주는 도구이다. 이번 내용에서 다루는 JUnit5는 Java 8 이상에서 동작함에 유의하자! Assertion 이란? 테스트를 수행하며, 결과에 ..

Study/Java

[JAVA] 동일성, 동등성 그리고 equals, hashcode 재정의

equals를 사용한 테스트 코드를 작성하고, 실제 기능을 구현한 뒤 테스트 해보았지만, 실패했다. 분명 내 코드에는 문제가 없다고 생각했고, 열심히 디버깅을 해 본 결과 equals 메소드에서 서로 다른 메모리 주소를 갖기 때문에 false를 반환했던 것이다. 이러한 문제는 equals, hashcode 재정의를 통해 해결할 수 있지만, 좀 더 근본적인 이유를 간단히 정리해보고자 한다. 자바의 동일성 (identify), 동등성 (equality) 먼저 자바의 동일성과 동등성에 대해 알아보자. 동일성 (identify) 이란 무엇일까? 나는 동일성 (identify) 이란 태생부터 존재하는 유일한 것이라고 생각했다. 나 홍길동은 태어나서 존재하는 단 한 명의 인간이다. 나와 같은 이름을 가진 다른 홍길..

Diary & 후기

현대자동차 소프티어 부트캠프 2기 코딩테스트 1, 2차 후기

https://www.softeerbootcamp.com/ 현대자동차그룹 소프티어부트캠프 2기현대자동차그룹 소프티어부트캠프 2기www.softeerbootcamp.com소프티어소프티어는 현대자동차그룹에서 주관하며, 우테코, 네부캠과 같은 코드스쿼드 교육기관에서 담당한다. 소프티어는 졸업 예정자를 대상으로 모집하기 때문에, 지원 자격이 조금 빡빡하다. 그래도 23.08월, 24년 02월 졸업 예정자를 뽑기 때문에 총 2번의 지원이 가능하다고 볼 수 있다. 교육 기간은 2개월 여름방학 동안 진행하며 채용 연계가 가능하다.1기 때도 지원 공고를 보았는데, 지원 자격이 충족되지 않고, 1기다 보니 특별한 정보가 없어 보고 넘겼었다. 2기 공고가 올라왔을 때에도 고민을 많이 했다. 아직 나는 많이 부족하다고 느끼..

Study/AWS

[amazon AWS] 아마존 EC2 프리티어 서버 생성하기

학교 졸업 프로젝트가 어느 정도 진전해 프론트에서도 어느 정도 테스트해 보며 작업해야 하기에 EC2로 서버 배포를 할 일이 생겼다. 예정했던 대로 aws ec2를 통해 서버를 올리기로 해 해당 과정을 기록해보려 한다. 로컬 환경은 mac m1을 기준으로 사용했다. 준비 먼저 프리티어로 서버를 생성했기에 결제 카드 등록을 마친 프리티어 계정이라 가정하고 진행한다. 인스턴스 생성 인스턴스란 간단하게 하나의 컴퓨터를 의미한다. 이는 웹 서버가 될 수 있고, DB가 될 수 있다. 여기서 EC2란 사용자의 입맛대로 구성할 수 있는 서비스라고 한다. 본격적으로 인스턴스를 생성해보자! 우선 리전 설정을 하자. 리전은 호스팅 되는 위치를 의미하는데 가까운 곳에 위치할수록 서버 속도가 빨라진다. 리전에 따라 인스턴스의 ..

ddingmin00
ddingstory