java9 리스트에서 배열 변환 시 size를 정확하지 않게 전달해도 된다고? 코테를 풀다보면 list에서 배열로 변환하는 과정이 흔히 발생한다.. 여러 방법이 있지만 나는 toArray를 자주 사용한다. toArray로 String을 list의 사이즈로 항상 지정해줬는데다른 사람들의 풀이 보다보니, 사이즈를 지정하지 않고 [0]으로 넘기는 코드를 종종 볼 때가 있다. new String[0]을 사용하는 이유new String[0]은 크기가 0인 배열을 전달하여, Java가 알아서 적절한 크기의 배열을 동적으로 생성하도록 합니다.크기를 0으로 전달해도 성능에 영향이 거의 없고, 코드가 간결해집니다. 배열의 크기를 정확히 맞추고 싶다면 배열 길이 그대로 해도 된다.하지만 new String[0]이 간편하고, 자파 컴파일러는 성능저하 없이 작동한다. 배열 길이.. 2024. 9. 20. 로깅 앤 디버깅 서비스 장애 모니터링 모니터링 하는 이유 ? 지속적으로 봄으로써 우리 서비스에 장애 판별 여부를 파악 및 장애 방지 -> 응답이 늦다 ? cpu 사용 급등 , 메모리 부족 등등.. 사용자의 불편함을 초래하는 이슈들이 발생할 수 있는 것을 "미리" 체크 cloud watch 예시 cpu, 메모리, 네트워크, 등등을 확인 IF) 장애를 초래한 원인을 제대로 분석하지 않는다면 ? 단순한 서버 티어 올리기 ? 단순한 해결책이다. 올리면 모든 게 해결되지만 한정된 자원으로 최고의 효율을 내야 하기에 즉 모니터링을 하므로써 서비스 장애 방지 및 비용을 최적화 그러면 누가 모니터링을 하고 있어야 하나 ? 응답의 기준으로 장애를 잡는다면 ? 1 .5초 이상의 응.. 2024. 6. 9. 증감 연산자 보호되어 있는 글 입니다. 2024. 1. 23. String이란? 자바에서 String은 좀 이상하다고 한다. int와 char와 달리 참조형 객체로 분류된다. 그럼에도 기본타입처럼 쓸 수 있ㄷ다. 불변객체 기본적으로 자바에서는 String 객체의 값은 변경할 수 없다. 불변 객체(Immutable Object)란? 한 번 값이 설정되면 변경될 수 없는 객체를 의미한다.Java에서 String은 왜 불변일까? 내부적으로 char[] 배열로 데이터를 저장하지만, String 클래스는 이 배열을 final로 선언해서 외부에서 수정할 수 없게 막아둠 왜 불변으로 만들었을까? 1. 쓰레드 안전(Thread-safe)불변 객체는 공유해도 안전 → 여러 쓰레드에서 동시에 사용해도 문제 없다2. Hashing 최적화String은 자주 HashMap의 키로 사용됨해시값을 한 번.. 2023. 10. 31. 하라는 indexof() 공부는 안하고 물리에 빠진 건에 대하여. 살아오면서 궁금한 게 너무 많아 평소에 고전 물리학에 관해서는 꽤 찾아봤었고, 나에게 물리학은 절대적인 것이고 불변의 진리였다. 처음 상대성 이론을 접하고 오는 쇼킹함은 " 와 이걸 이렇게 생각하구나 " 였는데, 양자역학을 접하고 나서는 진짜 " 아니 이걸 왜 이렇게 생각하지? " 였을 만큼 이해가 가지 않았다. 공부가 하기 싫어서 갑자기 양자역학에서 해석이라면 " 내 존재가 세상에 중심이 되지 않을까? " 라는 이상한 생각이 문득 들어서 .. 알아보고 싶어졌다. 우리는 양자와 원자들로 이루어져 있다. 맞는 진 모르겠지만 내가 대충 이해한 개념으로는 원자들이 모여서 분자가 되고, 원자는 더 작은 최소 단위인 양자로 이루어져 있다고 이해를 했는데, 근데 과학적, 양자역학적으로 양자와 원자를 구분하는 거 같.. 2023. 5. 19. 내맘대로 디버깅(Debug) 원래 "디버깅" 이라고 하면 코드의 에러를 찾기 위해 사용하는 걸 의미한다. 하지만 나는 아직 그 정도의 레벨은 훨씬 못 미치고, 그냥 필기하려면 키보드 치워, 노트 꺼내, 하는 게 귀찮기도 하고 하나 하나 손코딩 해보다 숫자 계산이 힘들어지면 바로 디버그를 활용한다.. 버그(Bug)의 기원은 초기 개발자가 중 한 명이 고장의 원인을 찾다가 결국 밝혀낸 게 회로 사이에 나방 한 마리가 끼여 있어서 그 이후로 컴퓨터적 오류를 버그(Bug)라고 하고, 이를 고치는 일을 디버그(Debug) 라는 이야기다. (TMI 나방은 변태 하는 과정 중 애벌레에서 번데기, 성충으로 변태 하게 되는데, 애벌레가 몸이 변형되어서 나방이 되는 것이 아니라 애벌레가 녹아 액체 상태의 단백질로 성체로 재조립 된다고 한다.. 성충이.. 2023. 5. 17. 몰래 온 손님 toString() 한참 메서드를 공부하려고 유튜브로 강의를 보는데, 강사님이 분명 다른 클래스의 메서드들을 만들 때 toString() 메서드를 만들지 않고 이런 식으로 메서드를 호출하는 것이다.. 그냥 보여만 주려고 아무 클래스나 만들었슴니다.. 너무 궁금해서 댓글도 확인해 봤지만, 그냥 "자바에서 정했으니까" 라고 되게 두리뭉실하게 답변해 주셔서 또 궁금한 거 절대 못 참는 나는 파헤치기 시작했다. 그리고 그냥 "규칙이니까 외워" 라는 말이 세상에서 한 열두 번째 정도로 싫다.. (첫 번째로 말하려다가 생각해 보니 내가 세상에서 싫어하는 말들이 많아서 대충 만만한 숫자 잡아주기..) 지금 상황이 메서드나 클래스에 대해서는 그래도 어느 정도 알고 있다고 생각해서 더 혼란스러웠다. 그래서 찾아보니, toString은 최상.. 2023. 5. 16. 동일 Package에서 같은 이름의 Class 정의 코플릿 문제들을 인텔리제이로 옮겨서 푸는 방법을 습득했다. 그러다보니, 각각의 문제마다 클래스 이름이 Solution으로 지정되어 있는데, 보시다 시피 동일 패키지 내에서 같은 Solution 이라는 클래스가 여러번 중복되는 오류가 발생한다. 해결법을 찾아보니 다른 패키지에 관리를 해 중복을 피한다. solution 클래스의 이름을 변경한다. 먼저 첫 번째 방법은 나는 패키지 별로 문제 유형을 관리하고 싶어서 다른 패키지에 관리하고 싶지 않아서 pass 다음으로 두 번째 방법은 문제가 10~20개 까지 있는데 각각 solution1, solution2, solution3 ... 이렇게 다 적는 게 여간 불편한 일이 아니였다. 사실 이건 식별성 때문에 쓰면 안되는 규칙이라고 알려져 있다. ChatGPT 형.. 2023. 5. 15. 객체와 클래스 곰곰히 생각해보면 나의 마지막 글쓰기는 군대에서의 일기를 쓴 일이 끝인 걸로 기억되는 걸 보면나는 글을 쓰는 걸 좋아하지 않는 건 분명하다. 대신 나는 책을 읽거나 남의 글을 읽는 것은 꽤 자신있고 좋아한다고 할 수 있겠다.(사실 시대가 변함과 동시에 나이를 먹다보니, 영화나 인터넷 등의 접근성이 쉬운 매체들을 더 선호하긴 한다.....) 내 블로그의 아이디가 "ernest" 인 이유와 또 이 글의 제목이 헤밍웨이의 "가장 간결한 대답은 행동하는 것이다." 라는 걸 보면 좀 더 내 주장에 힘을 실을 수 있을 것 같다.하지만 내가 글을 쓰는 것을 좋아하지 않는다고 해서, "글쓰기의 중요성을 모르는 것은 아니다" 라고 자부할 수 있다. 요새 내가 하고 있는 것은 코딩을 공부하는 일인데, 새로운 것을 .. 2023. 5. 9. 이전 1 다음