일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- http
- 상속
- 포트폴리오
- HTTP 완벽가이드
- leetcode
- Hibernate Reactive
- 취업회고
- html
- 자바
- Spring
- 주간회고
- 이펙티브자바
- 메가테라
- JavaScript
- java
- 신혼여행
- 2022회고
- til
- 바닐라코딩
- 몰디브
- 자바스크립트
- 클로저
- jvm
- css
- http 완벽 가이드
- 헤리턴스아라
- CORS
- 소프트웨어장인정신
- 부트캠프
- SpringSecurity
- Today
- Total
목록자바 (13)
codingBird

# 추상화는 데이터나 프로세스 등을 의미가 비슷한 개념이나 표현으로 정의하는 과정 # Program to interface 할 때 주의할 점 타입이 증가하고 구조가 복잡해져 모든 곳에 인터페이스를 사용하면 안됨 # 인터페이스를 작성할 대 고려해야하는 점 사용하는 측에서 고려하고 작성해야함 # Mock객체는 무엇이고 어떤 목적으로 사용하는가 실제 콘크리트 클래스 대신에 진짜처럼 행동하는 객체. 사용할 코드의 완성을 기다릴 필요 없이 내가 만든 코드를 먼저 빠르게 테스트 할 수 있도록 도와준다. # 상속의 단점을 모두 설명하시오 컴파일 타임에 타입이 정해져 강한 커플링이 생겨서 캡슐링이 깨짐 부모 객체의 변화가 자식 객체의 변화를 야기할 수 있고 단일 상속으로 클래스으 수가 과다하게 생성될 수 있음 # 컴포..

# 절차 지향 프로그래밍이란 무엇인가? 절차 지향 프로그램이 규모가 커지면 발생하는 문제. 데이터와 데이터를 조작하는 코드를 작성하는 것. 각 프로시저들이 데이터를 조작하는 방식으로 코드를 작성하는 것. 이렇게 프로시저로 프로그램을 구성하는 기법을 절차지향 프로그래밍이라고 부른다. 절차 지향 프로그램이 규모가 커지면 데이터 타입이나 의미를 변경해야 할 때, 함께 수정해야 하는 프로시저가 증가한다. 같은 데이터를 프로시저들이 서로 다른 의미로 사용하는 경우가 발생한다 # 객체지향 프로그래밍이란 무엇인가? 그리고 그 장점은? 객체 지향은 데이터 및 데이터와 관련된 프로시저를 객체라고 불리는 단위로ㅓ 묶는다. 객체는 프로시저를 실행하는데 필요한 만큼의 데이터를 가지며, 객체들이 모여 프로그램을 구성한다. 객체..

# Spring # Spring을 사용하는 이유 스프링의 3대 요소는 DI/IOC, AOP, PSA 세 가지로 나눌 수 있다. 각각 의존성 주입과 제어의 역전, 관점 지향적 프로그래밍, 이식 가능한 서비스의 추상화. DI와 IoC (Denpendency Injection & Inversion of Control) 객체의 생명주기를 사람이 아닌 프레임워크에 관리를 시킨다는 것. 스프링으로 서버를 만들 때 @Controller 어노테이션을 붙여 라우팅을 시킨다. 그럼 new Controller를 하지 않았음에도 불구하고 Controller 클래스는 어디서 생성되는 것일까? 이 질문에 대한 해답을 주는 것이 IoC이다. 스프링은 ApplicationContext를 가지고 있고 스프링에서 관리하는 객체인 Bea..

# 유니코드 유니코드는 지구상 모든 문자를 표현하기 위한 대응표이다. (컴퓨터는 0과 1만 이해하기 때문에, 모든 문자를 일 대 일로 대응하는 표를 만듦으로서 문자를 표시한다). 유니코드는 2바이트로(0000 ~ FFFF) 모든 문자를 표한한다. 영문자 'A'는 U+0041, 한글 '가'는 U+AC00이고 자바에서는 \uAC00으로 표기한다. 한글의 범위는 U+AC00 ~ U+D7A3, 가 ~ 힣. # UTF-8 ASCII를 쓰던 미국인들은 유니코드를 사용하면 같은 문자가 1바이트에서 2바이트로 차지하는 메모리가 두 배로 늘어나게 되어, 경제적인 이유로 가변길이인 UTF-8 인코딩 방식을 만들게 되었다. UTF-16, UTF-32 등 다른 인코딩 방식도 있으나 현재 UTF-8이 가장 효율적이고 W3C에서..

메가몰 작업 4일 차. UI를 붙이기 시작하니 슬슬 크고 작은 버그들이 눈에 보이기 시작한다. 크게는 화면이 업데이트되지 않는 이슈부터, 작게는 글자가 다르게 보이거나 순서가 바뀌어서 출력되는 문제. 자잘한 이슈는 비록 프로그램이 종료되거나 컴파일 오류가 나진 않지만 프로그램 완성도에 지대한 영향을 끼치기 때문에 하나하나 수정하고 있다. 오늘 겪었던 가장 큰 버그는 화면 업데이트가 되지 않았던 버그. 프로그램이 실행되고 처음 상품페이지에서 상품을 주문하고 주문 확인 페이지로 전환했을 때는 성공적으로 주문한 상품이 주문 확인 페이지에 렌더링이 된 것을 볼 수 있었는데, 다시 상품 페이지를 갔다가 주문 확인 페이지로 돌아오거나 다른 페이지에 갔다가 다시 돌아오는 경우 화면이 업데이트되지 않았다. 분명 Obs..

홀 : 그래서 Static멤버는 왜 인스턴스를 생성하지 않아도 사용할 수 있는 거죠? 나 : 클래스가 로딩될 때 method area에 메타데이터가 올라가서...? 홀 : 그럼 그게 어떻게 된다는 거죠? 나 : 모릅니당... 맞다. Method Area에 뭔가가 있다고만 알고 있고 무엇이 들어있는지 실제로 찾아보진 않았다. 그래서 인터넷을 뒤지며 찾았는데도 제대로 된 정보가 나오지 않아 포기를 하려던 도중에 중국어로 작성된 글이 있어 한번 봤는데 꽤나 자세하게 나와있고 작가가 원래 책으로 출판을 하려던 내용을 출판사와 계약이 깨지는 바람에 블로그에 글을 올리게 되었다고 하니 어느 정도 믿을 수 있지 않을까 해서 정리하게 되었다. 참고로 작가는 대만대 컴공과를 졸업하고 퍼블릭 아이비리그인 UIUC에서 석사..

# build란? 소스코드 파일을 하드웨어에서 실행할 수 있는 독립(standalone) 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과물. 총 4단계로 이루어진다. # preprocessing (전처리) 전처리 과정은 전처리기(preprocessor)에 의해 소스코드에 포함된 메크로나 지시자 같은 것을 포함시켜줌 -> 소스코드의 중심(main)이 실행되기 전에 사전 준비하는 과정 -> import문으로 명시한 패키지는 미리 참조하는 패키지를 가져와서 클래스 객체 앞에 이름을 붙여줌 # compile 어느 프로그래밍 언어를 동등한 다른 프로그래밍 언어로 전환해주는 것. 자바에서는 소스코드 파일을 JVM이 이해하는 자바 바이트코드로 작성된 목적 파일로 전환한다 -> 보통은 비트 코드를 부호화해..

객체지향에는 상속이라는 특징이 있다. 상속은 기존 객체를 토대로 새로운 객체를 생성하는 것으로 기존 객체의 특징을 웬만하면 전부 가지고 있고 (접근 제한자 public이라는 가정하에는 전부, protected는 해당 패키지의 클래스를 상속했다면 가능, default는 해당 패키지 안에서만, private은 불가), 기존 객체를 토대로 자신만의 특성을 확장하여 사용이 가능하다. 근데, 이거 evil이라고 하더라. 객체지향의 꽃인 다형성을 피우기 위해 상속이라는 개념은 객체지향에서 매우 중요하다고 어디선가 본거 같은데 정작 상속이 evil이라니? 그럼 애당초 패러다임에 문제가 있는 게 아닌가? 상속할 수 있어서 상속받아 사용했는데 왜 나빠? 암튼 이런 생각을 가지고 상속은 정말 나쁜지, 아니면 나쁜 상황이 ..