자바 4주차: 동시성 프로그래밍 기초(작성 중)
·
외부활동/JSCODE 자바
Thread-Safe멀티 스레드 환경에서 공유 자원에 여러 스레드가 접근이 이루어져도 프로그램이 정상적으로 동작하는 상태synchronizedsynchronized란?lock을 통해 동기화를 수행하여 원자성 문제를 해결하는 키워드문제점한 스레드가 lock을 얻어서 임계 영역에 접근하면 해당 영역에 접근하고 싶은 모든 스레드가 blocking이 걸려 아무 일도 못하며 스레드 상태를 변경하는 비용때문에 성능이 좋지 않다.성능 저하(락 대기)데드 락공정성 문제 -> 기아 상태(starvation)동기화 매커니즘모니터 락을 사용하여 스레드 간 동기화 제공객체의 락은 한번에 하나의 스레드가 점유임계 영역(Critical Section)멀티스레드 환경에서 공유 자원에 접근하는 코드 블록모니터모니터는 스레드가 mut..
자바 3주차: 컬렉션 기초(작성 중)
·
외부활동/JSCODE 자바
JCFJava Colleciion Framework프레임워크?표준화된 클래스와 인터페이스의 집합 -> 통일된 API 제공통일된 API?- 데이터를 다루기 위한 버튼- 동일 인터페이스에 구현체가 달라도 add(), remove() 같은 이름으로 같은 방식으로 동작배경?자주 쓰이는 데이터 저장 방식을 표준화된 설계도를 만들자.한마디로 JCF는?다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 JCF 계층구조JCF는 Collection, Map 인터페이스Collection은 다시 List, Queue, Set 인터페이스List 인터페이스- 순서가 있는 데이터 집합(데이터 중복 허용)-  List 구현체는 ArrayList, LinkedList, Vector  ArrayLi..
자바 2주차: (작성 중)
·
외부활동/JSCODE 자바
String literal과 new String(””)의 차이String literal- String Constant Pool에 저장- 동일한 문자열 리터럴이 여러 번 사용되더라도, Java는 메모리 절약을 위해 동일한 참조를 재사용합니다.new String("")- Heap에 저장- Heap에 새로운 객체를 만들고, 기존 String Constant Pool에 동일한 문자열이 존재하더라도 무시하고 별도의 객체를 만듭니다.- GC의 메모리 회수 대상String Contant Pool?Java의 String Constant Pool은 JVM이 관리하는 특별한 메모리 영역입니다. 이곳에 저장된 문자열 리터럴은 JVM 종료 시까지 유지되거나, 클래스가 언로드될 때만 제거됩니다. 즉, String Pool에 저..
자바 1주차: 자바 객체 지향
·
외부활동/JSCODE 자바
Q1. 오버로딩과 오버라이딩의 차이는 뭔가요?오버로딩은 같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의하는 것입니다.오버라이딩은 상속받은 메서드를 자식 클래스에서 재정의하는 것입니다. 오버로딩은 컴파일 타임에 결정되고, 오버라이딩은 런타임에 결정됩니다.Q2. 다형성이 무엇이고, 왜 필요할까요?다형성은 동일한 메서드 호출이 객체 타입에 따라 다르게 동작하는 성질입니다. 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.Q3. 상속은 무엇인가요?상속은 부모 클래스의 속성과 메서드를 자식 클래스가 물려받는 것입니다. 코드 재사용성을 높이고, 공통 기능을 묶어 관리할 수 있습니다.Q4. 상속의 단점은 무엇이 있을까요?상속은 부모-자식 클래스 간의 결합도를 높여 유연성이 떨어질 수..
자바 1주차: 자바 기본
·
외부활동/JSCODE 자바
Java의 특징에 대해서 설명해주세요.Java는 플랫폼 독립성을 제공하며, "Write Once, Run Anywhere"(WORA)를 지향합니다. 객체 지향 언어로 캡슐화, 상속, 다형성을 지원합니다. 자동 메모리 관리를 위한 Garbage Collection을 제공합니다. 멀티스레딩, 강력한 보안, 풍부한 API 등도 주요 특징입니다.객체지향 언어 -> 유지보수가 쉽고 확장성이 높다.멀티 스레드 구현이 쉽다 -> 스레드 생성 및 제어와 관련된 라이브러리 API를 제공한다.Java의 단점에 대해서 설명해주세요.Java는 C/C++에 비해 실행 속도가 느릴 수 있습니다. Garbage Collection으로 인해 메모리 사용량이 높고, JVM 초기화로 인해 애플리케이션 시작 시간이 느릴 수 있습니다.C/..
플로우 차트
·
외부활동/항해플러스
플로우 차트는 순서도, 흐름도를 의미한다. 일을 처리하는 과정(논리의 흐름)을 순서대로 간단한 기호와 도형으로 도식화한다.
[3주차] 콘서트 예약 서비스(작성 중)
·
외부활동/항해플러스
콘서트 예약 서비스설명- 대기열 시스템 구축- 예약 서비스는 작업 가능한 유저만 수행할 수 있도록 해야 한다.- 사용자는 좌석 예약 시 미리 충전한 잔액을 사용해야 한다.- 좌석 예약 요청 시, 결제가 이루어지지 않더라도 일정 시간 동안 다른 유저가 해당 좌석에 접근할 수 없도록 해야 한다.요구 사항API- 유저 토큰 발급 - 예약 가능 날짜/좌석 조회- 좌석 예약 요청- 잔액 충전/ 조회- 결제각 기능 제약 사항 반드시 단위 테스트 작성다수의 인스턴스 어플리케이션 동작 하더라도 기능에 문제 없도록 작성동시성 이슈를 고려한 구현대기열 개념을 고려해 구현
스터디를 마치며 (24.11.01 ~ 24.11.29)
·
외부활동/JSCODE 네트워크
이직 준비를 위해 면접 스터디를 찾던 중, 마침 JSCODE에서 진행하는 면접 스터디 모집 공고를 발견했다. 체계적인 진행 방식과 긍정적인 후기들이 많아 고민 없이 신청하게 되었다. 평소 내 생각을 명확히 표현해 본 경험이 부족하고, 설명에 자신이 없었던 터라 기대와 함께 약간의 걱정도 있었다. 스터디를 직접 경험해 보니 진행 방식은 정말 체계적이었다. 지원자 역할뿐만 아니라 면접관과 관찰자 역할도 번갈아 가며 수행하면서 면접 과정을 다각도로 이해할 수 있었다. 또한 스터디 후 구글 폼을 통해 서로 피드백을 주고받으며 자신의 강점과 약점을 객관적으로 파악할 수 있었다는 점도 매우 유익했다. 1주 차에는 지원자 입장에서 면접관의 질문에 대답하며 몇 가지 문제에 직면했다. 말을 끊어가며 뜸을 들이는 경향이 ..
[5주차] 인성 면접 질문
·
외부활동/JSCODE 네트워크
보호되어 있는 글입니다.
[5주차]ICMP
·
외부활동/JSCODE 네트워크
인터넷 제어 메시지 프로토콜(ICMP)이란?ICMP(Internet Control Message Protocol)는 네트워크 장치에서 네트워크 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜입니다. ICMP는 주로 데이터가 의도한 대상에 적시에 도달하는지 여부를 확인하는 데 사용됩니다. 일반적으로 ICMP 프로토콜은 라우터와 같은 네트워크 장치에서 사용됩니다. ICMP는 오류 보고 및 테스트에 아주 중요하지만, 분산 서비스 거부(DDoS) 공격에도 사용될 수 있습니다.네트워크 상태 진단(ping, traceroute)데이터 전달 오류 알림(목적지 도달 불가, TTL 초과 등)비유를 통해 설명하자면 IP는 편지를 전달하는 우체부이고, ICMP는 우체부가 편지 배달 도중 문제를 만났을 때 발송인에게..