전체 글 58

Wireshark 단순하고 기본적인 사용법

설치 https://www.wireshark.org/download.html 접속 본인 운영체제에 맞는 프로그램 설치 Read me first.html을 열어 추가적으로 설치해야 될 부분을 확인 패킷을 capture 하는 것이 필요하기 때문에 ChmodBPF 패키지도 설치한다. 그리고나서 Wireshark 애플리케이션을 실행시킨다. Capturing packets capture 섹션에서 NIC들을 확인이 가능하고 네트워크에 연결된 부분을 확인할 수 있다. 현재 이더넷은 연결 안되있고 WIFI만 연결되있는 상태임을 확인할 수 있다. 이제 네트워크에 연결되있는 NIC 중 하나를 선택하여 더블 클릭하면 그 NIC에서 전송되고 있는 여러 패킷들을 확인할 수 있다. 여기서 캡처하는 동안 특정 웹사이트에 접속해보고..

우테코 프리코스 최종테스트 후기

우테코 6기 4주간의 프리코스 이후 운좋게도 1차 합격 후 최종 코딩테스트를 보게되었다. 결론적으로 말하면 테스트코드를 통과하지 못했고 0점이기에 탈락이 거의 확정된 상태이다.(요구사항도 다 못지켰다) 탈락인데 쓸까말까 고민하다가 멘탈 회복. 그리고 그때 실수 했던 경험을 토대로 다시는 실수를 번복하지 않겠다는 의지와 머리 속에 복잡한 생각을 정리하기 위해 회고해본다. 이번 최종 코딩테스트의 문제는 온-콜 미션이었다.(문제는 아래에) 더보기 문제 https://github.com/woowacourse-precourse/java-oncall-6 GitHub - woowacourse-precourse/java-oncall-6 Contribute to woowacourse-precourse/java-oncal..

익명객체와 람다는 결국엔 같은걸까?

저번 글에서 아래 두개의 코드는 같은 일을 수행한다고 글을 쓴 적이 있었다. 즉, 이 둘을 보면 컴파일러는 람다식을 익명객체로 변환한다고 볼 수 있다고 생각할 수도 있다. 이 둘을 컴파일하고 javap로 디컴파일 하여 과연 바이트코드가 같은 지 확인해보겠다. 결론부터 말하면 익명객체와 람다식은 서로 다르다. 바이트코드를 얼핏 봐도 위에는 INVOKESPECIAL 이라는 JVM 명령어를 쓰고 있고, 아래는 INVOKEDYNAMIC이라는 JVM 명령어를 사용함을 볼 수 있다. 이 둘의 차이점이 뭔지 간단하게(깊지 않게) 고민해봤다. 익명 클래스 바이트 코드 1. Ex14_0의 내부 클래스인 INNERCLASS가 만들어지고 Ex14_0$1의 클래스가 새롭게 생성되었음을 위의 바이트 코드와 다음 클래스에서 확인..

공부방/JAVA 2023.12.03

람다식 기본 - 백기선 자바라이브스터디

람다식 사용법 함수형 인터페이스 : 하나의 추상 메서드만 포함하는 인터페이스는 함수형 인터페이스 이다. 함수형 인터페이스의 경우 람다 표현식을 통해 인터페이스의 객체를 생성할 수 있다. Lamda 표현식을 사용하면서 익명 내부 클래스에 대한 너무 많은 정의를 피하고, 코드를 더욱 간결하게 만들고, 의미 없는 코드 쌍을 제거하고 핵심 로직만 남긴다. 요약: 추상 메서드가 하나만 포함된 인터페이스의 경우 Lamda 표현식을 사용하여 코드를 단순화 하여 객체를 생성할 수 있다. 람다식 생략 가능한 것 매개변수 유형 생략 가능 메서드 본문에 코드 한 줄만 있는 경우 중괄호 반한과 세미콜론 생략 가능 메서드에 매개변수 하나만 있는 경우 괄호 생략 가능 https://babgeuleus.tistory.com/116..

공부방/JAVA 2023.12.02

Ubuntu에서의 X 서버 연결 문제 해결 방법(cannot open display)

문제 상황 'dconf-editor'라는 GUI 애플리케이션을 콘솔에서 실행하려 했지만 "cannot open display"라는 오류가 발생했다. 이는 X 서버에 연결하지 못했을 때 나타나는 오류이다. 해결 전략 이 문제를 해결하기 위해 KDE라는 그래픽 사용자 인터페이스를 설치하고, SSH의 X11 포워딩 기능을 사용하여 원격에서 그래픽 애플리케이션을 실행하는 방법이 있어 먼저 KDE를 설치했다. apt-get -y install kubuntu-desktop 명령으로 KDE Plasma를 설치 설치가 완료되면 reboot 명령으로 재부팅한다 SSH 서버가 설치되있지 않거나 실행되지 않고 있다면 1. apt-get -y install openssh-server 명령으로 SSH 서버를 설치 2. 다음 명..

인프라/linux 2023.11.24

우테코 프리코스 3주차 후기 + 피드백 정리

이번주차의 문제는 로또 미션이었다.(문제 및 코드는 아래에) 더보기 문제 https://github.com/woowacourse-precourse/java-lotto-6 GitHub - woowacourse-precourse/java-lotto-6 Contribute to woowacourse-precourse/java-lotto-6 development by creating an account on GitHub. github.com 코드 https://github.com/woowacourse-precourse/java-lotto-6/pull/827 [로또] 김민상 미션 제출합니다. by minsang-alt · Pull Request #827 · woowacourse-precourse/java-lott..

우테코 프리코스 2주차 후기 + 공통 피드백 정리

2주차는 간단하게 나열 형식으로 이번에 지켰던 것과 다음 3주차때 추가적으로 지켜야 할 것들을 정리해 보려고 한다. 이번주차의 문제는 자동차 경주 미션이었다.(문제 및 코드는 아래에) 더보기 문제 https://github.com/minsang-alt/java-racingcar-6 GitHub - minsang-alt/java-racingcar-6 Contribute to minsang-alt/java-racingcar-6 development by creating an account on GitHub. github.com 코드 https://github.com/minsang-alt/java-racingcar-6/tree/minsang-alt GitHub - minsang-alt/java-racingca..

코드 품질 향상을 위한 제네릭(Generic) - 백기선 자바라이브스터디

제네릭이 제대로 사용하기 위해서 왜 사용하는 지 부터 알아보겠다. 제네릭 사용 이유와 이점 컴파일 타임에 타입 검사를 통해 예외 방지 제네릭은 JDK 1.5에 추가된 기능이다. JDK 1.5 이전에서는 여러 타입을 다루기 위해 Object 타입을 사용했었다. 하지만 Object로 타입 선언할 경우 반환된 Object 객체를 다시 원하는 타입으로 타입 변환을 해야 하며, 런타임 에러가 발생할 가능성도 존재한다. 아래 왼쪽 사진은 Object를 사용했을 경우 문제, 오른쪽은 제네릭을 사용했을 경우에 대한 예제 이다. 불필요한 캐스팅을 없애 성능 향상 위 사진 처럼 Object를 사용한다면 다운 캐스팅을 해야 하고 , 컴파일러는 타입검사를 추가적으로 진행해야 했다. 반면 제네릭은 미리 타입을 지정하거나 제한하..

공부방/JAVA 2023.10.30

우테코 프리코스 1주차 후기

이 글을 쓰는 목적은 1. 앞으로 과제를 진행하는 데 1주 차에 지켰던 것을 2주 차에서도 까먹지 않고 다시 지키기 위해서. 2. 우테코에 떨어져도 4주간 몰입해서 공부했던 경험을 기록으로 남기고 싶어서다. 1주차의 프리코스가 끝이 났다. 이번 주차는 요구사항이 까다롭지 않았는데, '프리코스는 이런 거니 한번 경험해 봐'라는 체험의 의미로 여겼다. 항상 프로젝트를 진행하면서 구현에만 급급했던 난 이번 기회에 하고 싶은 것들을 다 해보겠다는 마음가짐으로 임하였다. 그리고 가장 중요한 요구사항만큼은 꼭 지키기로 마음먹고 일주일 동안 수십 번은 읽어본 것 같다.(그동안 요구사항 제대로 안 읽어서 점수 깎인 적이 많았기 때문에..) 이번주차의 문제는 숫자 야구 게임이었다. (문제 및 코드는 아래에) 더보기 문제..

대피소 csv파일 제작과정

8월 초 노션에 정리했던 글인데 블로그로 옮김. 사용자가 위치한 지역에 가까운 대피소를 클라이언트에 전송하기 위해 각 재난대피소 위치에 대한 CSV파일이 필요했다. 하지만 민방위 CSV파일 말고는 존재하지 않았다. 그래서 직접 CSV파일을 만들어본 경험을 적어본다. 문제 발생 https://www.safekorea.go.kr/idsiSFK/neo/main/main.html 이 사이트에 여러개가 존재한다. 그중 필요한건 이재민임시주거시설, 지진옥외대피소 안타깝게도 전체를 가져오는 건 불가능해 보인다 최소 시도선택과 시군구 선택 후 검색을 눌러야지 가져오는 걸로 보인다.(api요청할 때 그렇게 하도록 한 듯) 요청헤더를 보면 다음 url을 get요청하면 문제없이 가져오는 것을 postman으로 확인을 하였다..