반응형
공부/CS2024. 5. 25. 11:33[네트워크] IPv4, 서브넷팅 문제 예시

복습 위해 5년전 방송기술직 목표로 공부했던 내용 포스팅IP(Intenet Protocol) - 인터넷상에서 하나의 host(컴퓨터)를 구분하기 위한 고유 주소(=식별자)- L3 계층에서 사용 - 라우터간 통신시 IP는 식별자 이다.- IPv4에서 A ~ E 클래스로 나눠지며, network id, host id 구분되어 관리됨- IPv4 의 경우 32bit 주소 체계 가짐 (2^32 = 약 43억개)예) 192.168.174.100 (10진수)  -- 8bit * 4 자리 - IPv6의 경우 128bit 주소 체계 가짐 (2^128 = '지구 상에 존재하는 모래알 개수보다 많다')예) 2004:2ba8:13aa:0011:0000:0000:0000:abaa   -- 16bit * 8 자리 IPv4 주소 ..

[Java] TreeSet 주요 메소드 살펴보기
알고리즘/자료구조2024. 5. 8. 15:12[Java] TreeSet 주요 메소드 살펴보기

TreeSet ? - Java Collection Framework 제공하는 자료구조- 이진 탐색 트리(binary search tree)로 구현 - 시간복잡도 : O(logN)  (HashSet의 경우 O(1))- 범위 탐색과 정렬에 유리 - Collection, Set 에서 제공하는 기본 메소드 또한 사용 가능- 중복 허용 X- null 허용 X (NPE 발생)- 정렬 기준의 경우 객체의 Comparable이나 TreeSet 생성자에 Comparator 초기화하여 사용- thread-safe 하지 않다 생성자- 내부적으로 Map 자료 구조를 사용하고, 아래와 같이 생성자를 제공한다 - 인자가 없는 기본 생성자를 사용할 경우 TreeMap으로 생성된다private transient NavigableMa..

[개발도서]프로그래머 열정을 말하다 (채드 파울러)
독서/📚2024. 5. 2. 11:33[개발도서]프로그래머 열정을 말하다 (채드 파울러)

목차에서* : 다시 읽어 보고 싶은 장** : 스스로 개선 되었으면 싶은 장 3장_코딩만으로는 이제 충분하지 않다이제 자신의 시간을 투자할 사업 분야에 대해 생각할 시간이다. 실천하기1. 비즈니스 담당자와 점심 약속을 잡으라. 담당자들이 일을 어떻게 하는지 이야기를 나누라. 일과 대해 자세히 질문하라. 이야기 나누는 동안 그 일을 하고 싶은 포부가 생기면 무엇을 배워야 하는지, 무엇을 바꿔야 하는지 질문하라. 기술이 그들의 일에 도움이 됐는지(또는 일을 더디게 했는지) 이야기를 나누라. 그리고 이 일을 정기적으로 하라. 2. 회사 업무와 관련된 업계 잡지를 고른다. (..) 회사에는 대부분 업계 잡지 과월호 모음이 있다. 잡지를 하나하나 읽이 시작하라. 모든 내용을 이해할 수는 없겠지만 꾸준히 읽도록 한..

[넥스트스탭] 블랙잭 - 자바 플레이 그라운드
공부/Java2024. 4. 30. 17:11[넥스트스탭] 블랙잭 - 자바 플레이 그라운드

깃 저장소학습 전https://github.com/ljw1126/my-java-blackjack-playground/tree/exercise-blackjack/src/main/java/nextstep/blackjack 학습 후https://github.com/ljw1126/my-java-blackjack-playground/tree/practice/src/main/java/nextstep/blackjack어려웠던 부분 - 클래스 책임을 제대로 처리하지 못하여, 로직이 분산되어 코드를 읽기 힘들었음- 테스트시 딜러와 플레이어가 가진 패를 초기화하는 방법을 생각지 못해 헤매었슴- 블랙잭 게임에 대한 이해 부족 (=요구사항 이해 부족)특히나 블랙잭 게임의 승패 판정할 때 딜러와 플레이어간의 1:1 비교를 이해..

[넥스트스탭] 자동차 경주 게임 - 자바 플레이 그라운드
공부/Java2024. 4. 30. 17:11[넥스트스탭] 자동차 경주 게임 - 자바 플레이 그라운드

깃 저장소학습 전https://github.com/ljw1126/my-java-racingcar-playground/tree/myself/src/main/java 학습 후https://github.com/ljw1126/my-java-racingcar-playground/tree/practice/src/main/java복습 - 자동차 경주 게임[기능 요구사항]① 각 자동차에 이름을 부여할 수 있다. (이때 자동차 이름은 5자를 초과할 수 없다)② 자동차 이름은 쉼표(,)를 기준으로 구분한다③ 전진하는 조건은 0에서 9사이에서 random값을 구한 후 값이 4이상인 경우이다④ 게임 종료 후 우승자를 출력한다. (이때 우승자는 한명 이상일 수 있다) [실행 결과]경주할 자동차 이름을 입력하세요(이름은 쉼표(,..

[넥스트스탭] 숫자 야구 게임 - 자바 플레이 그라운드
공부/Java2024. 4. 30. 17:11[넥스트스탭] 숫자 야구 게임 - 자바 플레이 그라운드

강의 링크 https://edu.nextstep.camp/c/9WPRB0ys/ 플레이그라운드 edu.nextstep.camp깃 허브 저장소학습 전https://github.com/ljw1126/my-java-baseball-playground/blob/myself/src/main/java 학습 후https://github.com/ljw1126/my-java-baseball-playground/tree/practice/src/main/java학습 전 직접 작성한 코드 (펼처보기)반성)① 객체 지향적 언어를 사용하면서도, 거리가 먼 절차적 코드를 작성② 절차적 코드로 인해 한 눈에 로직을 파악하기 힘듦 (가독성 저하)③ 테스트 코드 미작성④ 클래스 미분리 - view, model, controller⑤ 의미..

[Java] Queue (By ArrayDeque) 따라 구현해보기
알고리즘/자료구조2024. 2. 12. 20:26[Java] Queue (By ArrayDeque) 따라 구현해보기

ArrayDeque 클래스 특징① 자바 1.6 추가② 내부적으로 가변길이 배열(Resizable-array)로 데이터 관리, 용량 제한 없음③ Thread-safe 하지 않음④ Null element 금지⑤ Stack 으로 사용할시 Stack 클래스 빠르고, Queue로 사용할 시 LinkedList 클래스보다 빠르다This class is likely to be faster than Stack when used as a stack, and faster than LinkedList when used as a queue.  ArrayDeque를 Queue로 활용하는 경우 아래의 네가지 장점을 생각해 볼 수 있다① 더 높은 성능 지원 - 내부적으로 배열을 사용하여 큐를 구현하기 때문에 빠른 접근 시간을 제공..

[Java] Stack (By ArrayDeque) 따라 구현해보기
알고리즘/자료구조2024. 2. 12. 19:40[Java] Stack (By ArrayDeque) 따라 구현해보기

ArrayDeque 클래스 특징① 자바 1.6 추가② 내부적으로 가변길이 배열(Resizable-array)로 데이터 관리, 용량 제한 없음③ Thread-safe 하지 않음④ Null element 금지⑤ Stack 으로 사용할시 Stack 클래스보다 빠르고, Queue로 사용할 시 LinkedList 클래스보다 빠르다This class is likely to be faster than Stack when used as a stack, and faster than LinkedList when used as a queue. - 공식 doc  참고. Stack 클래스 단점자바 1.0에 추가되었고, Vector 클래스를 상속받고 있다 -- LIFO (Last In First Out) - 멀티 스레드 환경에서..

[Next Step] 12장 확장성 있는 DI 프레임워크로 개선
독서/📚2023. 11. 23. 13:50[Next Step] 12장 확장성 있는 DI 프레임워크로 개선

12.1 필드와 setter 메소드에 @Inject 기능 추가현재 생성자 주입만 가능한데, @Inject를 활용해서 필드(field), setter 메소드를 통해서도 DI를 할 수 있도록 기능을 추가한다 필드와 생성자 주입@Service public class MyQnaService { private UserRepository userRepository @Inject private QuestionRepository questionRepository; @Inject public MyQnaService(UserRepository userRepository) { this.userRepository = userRepository }} setter 주입@Controllerpublic cla..

[Next Step] 11장 의존관계 주입(DI)을 통합 테스트 하기 쉬운 코드 만들기
독서/📚2023. 11. 21. 14:03[Next Step] 11장 의존관계 주입(DI)을 통합 테스트 하기 쉬운 코드 만들기

11.1 왜 DI가 필요한가?의존관계란 객체 혼자 모든 일을 처리하기 힘들기 때문에 내가 해야 할 작업을 다른 객체에게 위임하면서 발생한다.즉, 내가 가지고 있는 책임과 역할을 다른 객체에 위임하는 순간 발생하는 것이다. (중략..)DI는 객체 간의 의존관계를 어떻게 해결하느냐에 따른 새로운 접근 방식이다.지금까지 우리는 의존관계에 있는 객체를 사용하기 위해 객체를 직접 생성하고, 사용하는 방식으로 구현했다. (중략..)이 같은 방식으로 구현할 경우 유연한 개발을 하는데 한계가 있기 때문에 인스턴스를 생성하는 책임과 사용하는 책임을 분리하자는 것이다.(중략..)이처럼 객체 간의 의존관계에 대한 결정권을, 의존관계를 가지는 객체가 가지는 것이 아니라 외부의 누군가가 담당하도록 맡겨 버림으로써 좀 더 유연한..

[Next Step] 10장 새로운 MVC 프레임워크 구현을 통한 점진적 개선
독서/📚2023. 11. 20. 21:44[Next Step] 10장 새로운 MVC 프레임워크 구현을 통한 점진적 개선

목표✨ (p338)① 레거시 MVC프레임워크와 애노테이션 기반의 새로운 MVC 프레임워크가 동시에 서비스 가능하도록 구현② 인터페이스로 추상화 가능한 부분을 찾아 2개의 프레임워크가 공존 가능하도록 리팩토링 수행  10.1 MVC 프레임워크 요구사항 3단계10.1.1 요구사항 (p335) 아래 RequestMapping 코드를 보면 직접 요청 URL과 컨트롤러를 추가 해야 하는 불편함이 있다. 서블릿과 같이 애노테이션을 활용해 설정을 추가하고 서버가 시작할때 자동으로 매칭되도록 개선해 본다. (힌트: @Controller 애노테이션을 추가하고, 자바 리플렉션을 활용) 10.1.2 자바 리플렉션(p340)Hint① java.lang.Class API의 getConstructors(), getMethods(..

[Next Step] 7장 DB를 활용해 데이터를 영구적으로 저장하기
독서/📚2023. 11. 17. 11:24[Next Step] 7장 DB를 활용해 데이터를 영구적으로 저장하기

실습 프로젝트 저장소실습의 경우 처음에 fork 받았는데, 깃 허브 잔디가 심어지지 않아 기술 블로그 참고(링크)하여 저장소 설정을 변경하도록 함 jwp-basic https://github.com/slipp/jwp-basic/tree/step2-user-with-mvc-framework GitHub - slipp/jwp-basic: 자바 웹 프로그래밍 기본 실습자바 웹 프로그래밍 기본 실습. Contribute to slipp/jwp-basic development by creating an account on GitHub.github.com  자바 진영은 데이터베이스에 대한 접근 로직 처리를 담당하는 객체를 별도로 분리해 구현하는 것을 추천한다. 이 객체를 DAO(Data Access Object)라..

[Next Step] 6장 서블릿/JSP를 활용해 동적인 웹 애플리케이션 개발하기
독서/📚2023. 11. 16. 21:01[Next Step] 6장 서블릿/JSP를 활용해 동적인 웹 애플리케이션 개발하기

실습 프로젝트 저장소실습의 경우 처음에 fork 받았는데, 깃 허브 잔디가 심어지지 않아 기술 블로그 참고(링크)하여 저장소 설정을 변경하도록 함 jwp-basic (6.1)https://github.com/slipp/jwp-basic/tree/step0-getting-started GitHub - slipp/jwp-basic: 자바 웹 프로그래밍 기본 실습자바 웹 프로그래밍 기본 실습. Contribute to slipp/jwp-basic development by creating an account on GitHub.github.com  web-application-server https://github.com/slipp/web-application-server GitHub - slipp/web-ap..

[Next Step] 12.8 웹서버 도입을 통한 서비스 운영(p458) 정리
독서/📚2023. 11. 10. 21:35[Next Step] 12.8 웹서버 도입을 통한 서비스 운영(p458) 정리

4-1. nginx 설치 및 설정 디렉토리$ apt-get install -y nginx$ sudo service nginx start$ netstat -tnlp  서버 아이피 접속시(80포트) nginx default 페이지 확인 가능하다80/tcp 접근 되지 않을 경우 ufw 방화벽 설정 확인해보기 주요 디렉토리 - /etc/nginx/sites-available- /etc/nginx/sites-enabled  참고. 강의 https://www.youtube.com/watch?v=7GlCo6RHBns4-2. nginx 와 tomcat 서버 연동nginx 와 tomcat 연결 설정$ cd /etc/nginx/sites-availabe$ sudo vim jwp-basic# 아래 내용 작성 후 저장 - t..

[Next Step] 6.6 쉘 스크립트를 활용한 배포 자동화(p218) 정리
독서/📚2023. 11. 3. 22:22[Next Step] 6.6 쉘 스크립트를 활용한 배포 자동화(p218) 정리

요구사항-지금까지 구현한 기능을 개발 서버에 톰캣 서버를 설치한 후 배포한다-서버가 정상적으로 실행되고 있는지 톰캣 로그 파일( catalina.out )을 통해 모니터링 한다-쉘 스크립트를 만들어 배포 과정을 자동화 한다 ① 톰캣 서버 설치② 실습 코드 배포③ 톰캣 서버 로그 모니터링④ 쉘 스크립트 통해 배포 자동화  참고. 영상 자료https://www.youtube.com/watch?v=ZsiO27LeW34https://www.youtube.com/watch?v=9Rr4gMRyUtQhttps://www.youtube.com/watch?v=bzM1WL4qdoA1. 톰캣 서버 설치톰캣 디렉토리 구조 - bin : 톰캣 서버 시작/종료,  catalina.sh 옵션 설정도 가능 - logs : 톰캣 실행..

[Next Step] 3.3 원격 서버에 배포 (p84) 정리
독서/📚2023. 7. 11. 21:38[Next Step] 3.3 원격 서버에 배포 (p84) 정리

요구사항 로컬 개발 환경에 설치한 HTTP 웹 서버를 물리적으로 떨어져 있는 원격 서버에 배포해 정상적으로 동작하는지 테스트한다. 이때 HTTP 웹 서버 배포 작업은 root 계정이 아닌 배포를 담당할 새로운 계정을 만들어 진행한다. ① 계정 추가 및 sudo 권한 할당② 각 계정별 UTF-8 인코딩 설정해 한글 이슈 해결③ JDK, 메이븐 설치④ Git설치, clone 및 빌드⑤ 방화벽 설정(ufw)⑥ 소스 코드 재배포 참고. AWS 사용할 경우 아래 링크 참고 (p83)https://opentutorials.org/module/1946 참고. 영상 자료https://www.youtube.com/watch?v=dWGzApCuF9Mhttps://www.youtube.com/watch?v=N8iLAuAo-..

[BOJ  1149] RGB거리 (Java, DP)
알고리즘/동적 프로그래밍2023. 7. 3. 13:46[BOJ 1149] RGB거리 (Java, DP)

문제 링크 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 문제 풀이 - 시간 제한 0.5초 이므로 완전 탐색으로 풀 경우 시간 초과 발생 - 첫번째 집의 RGB 값으로 초기값을 설정하고, 동적 프로그래밍으로 풀이한다 - 최종적으로 DP[N][1 ~ 3] 값 중 최소값 출력 - 시간복잡도 : O(N) 점화식 DP[i][j] = Math.min(DP[i - 1][x], DP[i - 1][y]) + RGB[i][j] (이때 i..

[IntelliJ] .editorconfig 활용하여 JS Code Style 맞추기
공부/IDE2023. 4. 13. 11:41[IntelliJ] .editorconfig 활용하여 JS Code Style 맞추기

Convention 정하지 않고 작업하게 될 경우, 서로 다른 작성 방식으로 인해 코드 가독성 저하를 일으키고 장기적으로 볼 때 유지 보수 함에 있어 큰 문제를 야기할 수 있습니다. Team Convention - 코드 스타일을 통일 시키는데 있어 Prettier 미사용하기로 함 - 규칙이 상대적으로 적고, 인텔리제이에서 제공하는 기능을 활용하는게 더 나은 것으로 판단했기 때문 설정 파일 .editorconfig 인텔리제이 설정 [File > Settings> Editor > Code Style] 이동 General Tab 에서 Enable EditorConfig Support 옵션 ✔ (=.editorconfig 설정 파일 허용) Formatter Tab에서 Do not format 에 제외 대상 gl..

반응형
image