자바 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에 저..
[객체지향의 사실과 오해] 식별자 그리고 동등성과 동일성에 관하여
·
독서
식별자객체가 식별 가능하다는 것은 객체를 서로 구별할 수 있는 특정한 프로퍼티가 객체 안에 존재한다는 것을 의미한다.이 프로퍼티를 식별자라고 한다.  모든 객체가 식별자를 가진다는 것은 반대로 객체가 아닌  단순한 값은 식별자를 가지지 않는다는 것을 의미한다. 값과 객체의 가장 큰 차이점은 값은 식별자를 가지지 않지만 객체는 식별자를 가진다는 점이다. 값숫자, 문자열, 날짜, 시간, 금액 등과 같은 변하지 않는 양을 모델링한다. 흔히 값의 상태는 변하지 않기 때문에 불편 상태(immutable state)를 가진다고 한다. 값의 경우 두 인스턴스의 상태가 같다면 두 인스턴스를 같은 것으로 판단한다. 상태를 이용해 두 값이 같은지 판단할 수 있는 성질을 동등성(equaliy)이라고 한다. 상태를 이용해 동..
자바 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- 유저 토큰 발급 - 예약 가능 날짜/좌석 조회- 좌석 예약 요청- 잔액 충전/ 조회- 결제각 기능 제약 사항 반드시 단위 테스트 작성다수의 인스턴스 어플리케이션 동작 하더라도 기능에 문제 없도록 작성동시성 이슈를 고려한 구현대기열 개념을 고려해 구현
[우리는 여전히 삶을 사랑하는가, 에리히 프롬] 우리는 여전히 삶을 사랑하는가
·
독서
우리는 여전히 삶을 사랑하는가?진정으로 살아 있다고 실감하려면스스로 생각하고 느끼고활동적일 수 있는 자기 나름의힘과 멀어지지 말아야 한다.우리는 여전히 삶을 사랑하는가? 활력과 체험을 제공하는 온갖 서비스로 인해 우리는 자신이 얼마나 활력과 내적 활동성을 잃어버렸는지 깨닫지 못하고 있다. 고통은 인생의 최악이 아니다. 최악은 무관심이다. 고통스러울 때는 그 원인을 없애려 노력할 수 있다. 하지만 아무 감정도 없을 때는 마비된다. 프롬이 생각하는 사랑은 생명력(삶)을 향한 관심을 담고 있다.생명은(...) 성장하고 표현하며 스스로 살아가는 성향이 있다. 성장과 변화가 없으면 죽음 뿐이다. “진정으로 삶을 사랑한다”고 말한다면 대부분은 그게 무슨 뜻인지 잘 안다. 그 말을 들으면 우리는 성장하고 생명력이 넘..
JVM 메모리 영역(Method Area, Call Stack, Heap)
·
Programming/Java
보호되어 있는 글입니다.
널널한 개발자님의 고민상담 영상을 보았다.
·
끄적끄적
https://www.youtube.com/watch?v=lwpnWx8E8aU "어두운 안갯속을 걷고 있는 답답한 기분" 이 말이 많이 와닿았다. 영상을 보며 끄적이던 것들을 남겨본다. 우선적으로 프레임워크를 공부할 것프레임 워크 자체가 구조를 가지고 있다. 어떤 상황에 대한 일련의 절차가 있다.왜 이렇게 설계 했을까? 7~10년 하다 보면 이유가 보일 것이다.프레임워크 구조를 공부하고 파생 이론을 공부하면서 연결을 해야 한다. 왜 저렇게 했을까? 표준 문서 전체를 볼 필요는 없다. 전체를 읽고 공부하는 건 학술의 영역이다. 알맹이만 봐도 충분하다. 사이드 프로젝트? 메신저나 WebRTC 공부해서 프로젝트 만들어 봐라. 결과가 눈에 보여서 재밌을 거다.
Resource 추상화
·
Programming/Spring
Resource 추상화Spring은 java.net.URL을 org.springframework.core.io.Resource로 감싸서 추상화한 클래스이다.스프링 내부에서 많이 사용하는 인터페이스이다추상화 한 이유java.net.URL 이 기본적으로 여러 prefix를 지원하는 프로토콜은 http,https, ftp, file, jar이지만 classpath 기준으로 리소스를 읽어오는 기능이 없다.ServletContext를 기준으로 상대 경로로 읽어오는 기능이 없다.새로운 핸들러를 등록하여 특별한 URL 접미사를 만들어 사용할 수는 있지만 구현이 복잡하고 편의성 메소드가 부족하다.ApplicationContext스프링의 핵심 인터페이스:단순히 빈 팩토리로서의 역할뿐만 아니라, 리소스 로딩 기능을 포함하..