F-Lab 66

[F-Lab 모각코 페이백 16일차] 팀코칭 질문 정리 (인터뷰 준비, 개념 학습)

학습목표 팀코칭 질문 답하기(개념 학습) TIL 어노테이션 타입 소거 (Type Erasure) Immutable 클래스 조합 (Java) OOM(Out Of Memory) 어노테이션이란 무엇일까요? (자바에서 어노테이션이란 어떤 것이고 역활은 무엇이고 장점은 무엇이야?) 자바에서 어노테이션(annotation)은 코드의 특정 부분에 메타데이터를 추가하는 방법을 제공합니다. 메타데이터는 데이터에 대한 데이터로, 어노테이션은 코드에 대한 정보를 제공하는 역할을 합니다. 이러한 정보는 컴파일러, 개발 도구, 런타임 시스템 등이 사용하게 됩니다. 어노테이션의 역할: 컴파일러에게 정보 제공: 어노테이션은 컴파일러에게 특정 행동을 하도록 지시할 수 있습니다. 예를 들어, @Override 어노테이션은 컴파일러에게..

[F-Lab 모각코 페이백 15일차] JSP, 서블릿(Servlet), Request 기본 객체

학습 목표 JSP TIL JSP 서블릿(Servlet) Request 기본 객체 요청 파라미처 처리 과정 JSP 표현식 JSP(JavaServer Pages)에서 표현식(Expression)은 웹 페이지에 동적으로 값을 출력하는 방법을 제공합니다. 표현식 태그는 사이에 위치한 자바 코드로 구성되며, 이 표현식은 서블릿이 실행될 때 계산되고, 그 결과값이 문자열로 변환되어 웹 페이지에 삽입됩니다. 예를 들어, 다음과 같은 JSP 표현식이 있다고 가정해봅시다: 이 표현식은 계산되면, "3"이라는 문자열로 변환되어 웹 페이지에 출력됩니다. 표현식을 사용하면, 자바 변수나 메소드 호출의 결과를 쉽게 웹 페이지에 출력할 수 있습니다. 예를 들어, 다음과 같이 세션에서 사용자 이름을 가져와 웹 페이지에 출력할 수 ..

[F-Lab 모각코 페이백 14일차] JSP, Encoding, UTF-8, Character Set

학습 목표 JSP TIL JSP UTF-8 UTF-16 스크립틀릿 JSP JSP(JavaServer Pages)는 자바(JAVA)를 사용하여 웹 페이지를 구성하고, 동적인 웹 페이지를 생성하는데 사용되는 서버 사이드 스크립트 언어입니다. JSP는 HTML 코드 내에 자바 코드를 삽입하는 방식으로 작동하며, 웹 서버가 이를 해석하고 실행하여 동적인 웹 페이지를 생성합니다. 클라이언트의 요청에 따라 내용이 변경되는 웹 페이지나, 데이터베이스에 접근해 정보를 보여주는 등의 작업에 적합합니다. JSP는 기본적으로 HTML과 유사하지만, 또는 와 같은 태그를 사용하여 자바 코드를 포함시킬 수 있습니다. 이러한 기능 덕분에 JSP는 웹 개발에서 동적인 기능을 구현하는 데 매우 유용합니다. 또한, JSP는 MVC(M..

[F-Lab 모각코 페이백 13일차] 에러의 종류, 내부 클래스, 익명 클래스,프로퍼티 클래스

오늘 학습 목표 팀코칭 질문으로 학습 자바의 신 23Chapter 최범균의 jsp 2.3 Chapter 1-3 웹 프로그래밍 기초 JSP로 시작하는 웹 프로그래밍 TIL 에러의 종류 구문 오류(Syntax Error)= 문법 오류 실행 오류(Runtime Error) 논리 오류 (Semantic Error / Logical Error) 내부 클래스 익명 클래스 프로퍼티 클래스 상수 풀(Constant Pool) 에러의 종류 크게 3가지가 있다. 구문 오류(Syntax Error)= 문법 오류 실행 오류(Runtime Error) 논리 오류 (Semantic Error / Logical Error) 구문 오류 컴퓨터 과학 분야에서 특정한 프로그래밍 언어에서 쓰이도록 고안된 일련의 문자열이나 문자 블록의 구..

[F-Lab 모각코 페이백 12일차] 다형성 개념 복습, 추상화 개념 복습, String, Static

학습목표 팀코칭 질문 답하기 자바의 신 23 Chapter 읽기 TIL 다형성 개념 복습 & 심화 추상화 개념 복습 & 심화 String Static 다형성 다형성이 상속 관계에 있는 클래스에서 부모클래스의 참조변수로 상속관계의 클래스들을 다양하게 활용하는 것으로 알고 있었는데 먼가 피부와 와 닿지 않아서 멘토님꼐 여쭤보고 예시 코드를 좀 더 찾아보고 읽어보았다. 확실히 예시 코드를 보고 활용한 것을 보니 좀 이해되고 이렇게 쓰는 거구나 라는게 좀 더 명확히 와닿았다. 부모클래스라는 틀을 이용하기 때문에 부모클래스를 상속 받은 자식 클래스들은 부모클래스라는 틀 안에서 구현하고 거기서 좀 더 추가할 것이 잇으면 추가하는 방식이기 떄문에 부모클래스를 참조 변수로 선언하고 자식 클래스의 인스턴스를 대입해여 사..

[F-Lab 모각코 페이백 11일차] 프로그래머스 - 연속된 부분 수열의 합(Java), 투포인터 알고리즘

학습 목표 프로그래머스 코테 한문제 풀기 자바의 신-(23,24 Chapter) 팀코칭-문제5개 멘토링 떄의 퀴즈 정리 TIL 투포인터 알고리즘(Two Pointers Algorithm) 프로그래머스 - 연속된 부분 수열의 합 Lv2 실제로 문제를 풀면서 풀이하여 정답을 맞추려고 하였으나 도중 저의 한계를 느끼고 문제풀이와 해설을 멈춘 틀린 답(틀린 풀이법) 입니다. 하지만 저의 고민과 생각했던 것을 적었습니다. 저의 공부와 그 과정을 정리한 글이니 그냥 이 사람은 이렇게 접근하려고 했고 이렇게 해서 틀렸구나 등으로 보시면 됩니다. 문제 설명 비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다. 기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하..

[F-Lab 모각코 페이백 10일차] ArrayList, Stack

학습 목표 자바의 신(22장) 컬렉션 List TIL 컬렉션(Collection) ArrayList Stack 자바의 신 22장 리뷰 및 정리 저번에 ArrayList에 대해 포스팅 한적 있지만 책 진도상 한번 더 학습하게 되었다. 자바의 신 2권의 자바 컬렉션 부분을 읽었다. 자바에서 컬렉션은 목록성 데이터를 처리하는 자료 구조를 통칭한다. 여기서 자료 구조는 Data Structure라고 한다. 한 개의 자료만 담는 것이 아니라 여러 개의 자료를 담을 때 쓰는 것을 자료 구조라고 한다. 그 중 하나가 배열이고 오늘 이야기할 ArrayList(어레이리스트)이다. 이 것 말고도 여러가지 자료구조가 있다. 면접에도 자료 구조가 중요하고 컬렉션에 대해서도 자주 물어본다. 컬렉션은 이터레이터 인터페이스를 상속..

[F-Lab 모각코 페이백 9일차] 해시맵(HashMap), 해시(Hash)

학습 목표 해시맵(Hash Map) TIL 해시맵(Hash Map) 메서드 equals() hashCode() 해시 해싱 해시 충돌 해시 충돌 해결 기법 오픈 어드레싱(Open Addressing) 체이닝(Chaining) 해싱이 뭐야? "해싱"은 데이터의 크기와 상관없이 고정된 크기의 고유한 값을 생성하는 과정을 말합니다. 해시 함수는 입력으로 데이터를 받아서 해시 값을 출력합니다. 이 고유한 해시 값은 원래의 데이터를 대표하며, 원래 데이터와 비교해 상당히 작은 고정된 크기를 가집니다. 해싱은 특히 데이터 저장 및 검색을 빠르게 수행하는데 유용합니다. 예를 들어, 해시맵 같은 데이터 구조는 키를 해시 함수에 통과시켜 결과 해시 값을 사용하여 값을 저장하고 검색합니다. 이렇게 해서 빠르게 특정 키와 연..

[F-Lab 모각코 페이백 8일차] 얕은 복사, 깊은 복사, 추상클래스와 인터페이스 차이점

오늘 학습 계획 팀코칭 질문으로 학습 TIL 얕은 복사 깊은 복사 추상클래스와 인터페이스 차이점 원시 타입(primitive type)과 참조 타입(reference type) 얕은 복사(Shallow Copy) 얕은 복사(Shallow Copy): 얕은 복사를 하면 원본 객체의 필드 값이 복사본에 그대로 복사됩니다. 원시 타입의 필드에 대해서는 문제가 없지만, 참조 타입의 필드에 대해서는 원본 객체와 복사본이 같은 객체를 참조하게 됩니다. 즉, 복사본에서 참조 타입의 멤버를 변경하면 원본 객체의 해당 멤버도 변경되고, 반대로 원본에서 변경하면 복사본에 영향을 미치게 됩니다. 이해가 잘 안되어서 좀 더 알아보니 얕은 복사(Shallow Copy)"는 원본 객체의 필드 값을 복사본에 그대로 복사합니다. 원..

[F-Lab 모각코 챌린지 7일차] C1 컴파일러, C2 컴파일러, 인라이닝, 루프 언롤링

학습 목표 팀코칭 질문으로 학습 TIL JIT 컴파일러 C1 컴파일러 핫스팟 C2 컴파일러 오버헤드 발생 감소 인라이닝 루프 언롤링 오버헤드 함수 호출 JIT 컴파일러 (C1C2 컴파일러) Java는 기본적으로 JIT (Just-In-Time) 컴파일러를 이용하여 프로그램을 실행합니다. 이 컴파일러는 Java 바이트코드를 런타임에 기계 코드로 컴파일하는 역할을 합니다. 이 과정은 런타임 중에 발생하므로, 프로그램의 성능을 향상시키는 데 큰 역할을 합니다. Oracle의 HotSpot JVM에서는 JIT 컴파일러가 두 가지, 즉 C1 (Client) 컴파일러와 C2 (Server) 컴파일러로 나뉩니다. 이 두 컴파일러는 각각 특정한 상황에 더 잘 맞도록 설계되었습니다. C1 컴파일러는 메소드가 처음 호출될..