전체 글16 Channel Talk Sync 작업 회고록 보호되어 있는 글 입니다. 2026. 1. 19. Java Thread Safety Thread Safety멀티 스레드 환경에서 함수, 변수 등이 여러 스레드로부터 동시에 접근이 이루어져도 프로그램 실행에 문제가 없는 것하나의 함수가 한 스레드로부터 호출되어 실행 중일 때, 다른 스레드가 그 함수를 호출하여 동시에 함께 실행되더라도 각 스레드에서의 함수의 수행 결과가 서로 간섭없이 정확하게 동작 (wiki) 여러 스레드가 데이터에 액세스하고 수정하더라도, 스레드 실행 순서에 다라 잘못된 값으로 설정되는 상황 없어야 함 (oracle docs)Thread Safety 보장해야 하는 이유 - 멀티 스레드 간 동기화 문제어떤 스레드가 어떤 순서로 실행될 지 예측 불가능 여러 스레드가 같은 전역변수나 공유 자원에 접근 시 문제 발생 가능가시성 문제 : 한 스레드에서 변경한 값이 다른 스레드에게.. 2025. 4. 16. Java에서 Enum의 동등 비교에 대해 * 이전 블로그에서 작성했었던 내용 다듬어서 재 포스팅합니다. 회사에서 MergeRequest를 올리고 코드 리뷰를 팀원께 요청드렸었는데, 아래와 같이 Dto에 있던 enumType비교 시 ==기호를 사용한 것에 대해 코드 리뷰가 달렸었다.if (someDto.type == someEnumType.Atype) { // do something} Enum 비교에 있어서 equals( )와 ==의 차이에 대해 공부해보는것도 좋을 것 같다고 토픽을 하나 주셨는데, equals 메소드와 == 연산자의 차이는 기술질문 대비 할때 자주 나오는 주제이다. equals()는 참조 변수의 값이 같은지 비교하는 메소드로, 재정의 되어있지 않다면 객체의 주소값을 비교하여 동일 객체인지 비교후 boolean 값을 리턴하는 메소.. 2025. 4. 16. Java 복습의 장 -1- 매일 같이 쓰는 언어지만 개념은 자주 까먹게 된다.그런 의미에서 이 페이지에 쭉 정리해두려 한다. Thread프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위이다. 프로세스끼리는 독립된 공간을 사용하지만, 스레드끼리는 일부 자원을 공유하기 때문에 같은 자원을 활용하면서도 동시에 작업을 수행할 수 있다. 병렬처리가 가능하고, 스레드 간 context switching 비용이 프로세스보다 적기 때문에 스레드가 존재한다. 스레드 끼리 독립적으로 가지는 것 : 지역변수, 매개변수, 리턴값등이 저장되는 stack과 ProgramCounter (메모리 상 그 외 나머지는 공유 : OS자원, Heap, Code, Data (전역 / 정적 변수 저장) MultiThread 환경에서 Thread 간 실행 순서는 알.. 2025. 3. 10. 화이트아웃 장애에 대한 회고글 거진 1년이 다 되어가는 사내 장애 해결 경험이지만, 면접 준비겸 스스로 다시 기억할 겸 해서 정리해보려 한다. 취준생 시절 상상했던 것과는 달리(?) 회사의 모든 프로젝트가 다 이상적으로 돌아갈 수는 없었다. 때로는 주니어끼리만 있기도, 시간 이슈로 인해 문제 생길 요소가 다분한 코드를 만들기도, 원인을 제대로 분석하지 않고 일단 고객사의 컴플레인이 해결 되었으니까! 라는 마음으로 넘어가기도 했다. (SI 사업 하다보면) 다시 신입시절 마주했던 이슈를 떠올려보며 회고겸 반성겸... 정리하려한다. (작성하다보니 그때의 최선의 선택은 했지만, 결과적으로 최선의 선택이었을지는 잘 모르겠다) 여담으로.. 최근 계속 취업 준비를 하느라 블로그 글이 뜸해졌다. 반성한다... 해당 화이트아웃 장애는 병목현상때.. 2025. 3. 9. 사내 레거시 코드 리팩토링 해보기 : 디자인패턴 적용, 메소드 간결하게 목차1. 리팩토링을 하게 된 배경설명2. 기존코드의 문제점3. 개선해보기 나는 기존 회사에서 이미지 업로드 모듈을 맡았었다. 기존에 레거시 코드에서 사내 자체프레임워크로 전환하는 과정에서, 새롭게 구현해야 하는 기능이었고 내가 맡아서 기능 구현부터 개발까지 담당하게 되었다. 이미지를 파일 서버에 작성하는건 자체 프레임워크의 양식에 맞게 구현하고, 그 후 비즈니스 로직을 처리해야 했다. 범용적으로 여러 군데에 사용되는 로직이었고, 소속 팀도 공통 모듈을 맡고 있어서.. 나름 독립적이고 확장 가능하게 썼다고 생각했다. (프로필, 배경 등) 리팩토링을 해야겠다고 생각한 건, 모듈 확장에 따른 코드 수정 때문이었다. 현재는 3군데에서 사용하고 있지만, 추후 기획안이 확장되면서 사용처가 더 늘어날 가능성이.. 2024. 12. 28. 이전 1 2 3 다음