
예상질문리스트 Spring 사용 이유? 장점? 스프링은 자바 프로그래밍을 더 빠르고, 쉽고 편하게 해주는 애플리케이션 프레임워크이다. 애플리케이션 개발에 보편적이고 공통적으로 사용하는 코드들을 추상화하여 진짜 우리가 하고 싶은 기능 개발에 집중할 수 있게 도와준다. 스프링은 객체지향 개념을 사용하여 극대화하여 구현되어 있고, 더 객체지향적인 기술개발을 가능하게 한다. Web Server VS WAS? 웹서버는 웹브라우저에서 요청하는 정적 페이지를 전송해주는 서비스를 의미한다. WAS(Web Application Server)는 웹 브라우저의 요청에 동적인 컨텐츠를 제공하는 서비스를 의미한다. 웹 컨테이너(JSP, Servlet 등을 포함)라고 한다. WAS는 웹컨테이너 또는 웹컨테이너+웹서버로 구성되어 ..
Kotlin DSL DSL(Domain-Specific Language) 도메인 특화 언어 선언적 언어 특정 주제에 특화된 언어 대표예시: DB 에 접근하기 위한 SQL 코틀린에서는 고차함수와 람다식을 이용하여 읽기 좋고 간략한 코드 생성이 가능 Background Knowledge Function literals with receiver(수신객체지정함수) 수신객체까지 지정된 함수 타입이다 A.(B) -> C : A(수신객체) 타입의 함수 B를 실행하여 C를 리턴 확장함수와 비슷하다. 함수 본문 내에서 수신 개체의 멤버에 접근 가능 Scope Function 코틀린 표준 라이브러리 객체 컨텍스트 내에서 코드 블록을 실행하는 것이 유일한 목적인 함수 객체내의 코드블럭 함수를 호출하는 것과 같음 syntac..
질문 피드백 클래스 단위의 @Transactional 사용 저는 개인적으로 클래스 레벨에 Transactional을 사용하는 것을 선호하지 않습니다. 트랜잭션은 굉장히 비용이 큰 작업이고, 불필요한 트랜잭션으로 성능이 낮아지는 문제도 있지만 더 큰 문제는 의도되지 않은 트랜잭션으로 인해 데드락이 발생할 수 있다 라는 것이 생각입니다. 실제 현업에서 대규모 트래픽을 처리하기 위해 데드락이 발생하지 않도록 설계하는 것이 굉장히 중요한데요. 개발하는 과정에서도 이 기능에 데드락이 발생할 요소가 있을까? 트랜잭션을 꼭 잡아야 가능한 기능일까? 구조를 변경하여 락이 필요 없는 구조로 바꿀 수 없을까? 에 대해 끊임없이 고민하게 되는데, 이러한 고민을 하는 시점이 저는 메서드에 Transactional 처리를 하는..
우테코에서 찾은 나만의 효과적인 공부법 프로그래밍을 공부하면서 기존의 학습과 다른 생각을 가지게 되었다. 따라서 프로그래밍을 학습하기 전과 프로그래밍을 학습하면서 생긴 생각의 차이를 비교하며 시작해보려고 한다. 더불어 짧지만 혼자 프로그래밍을 공부할 때와 우테코에 와서 학습할 때의 달라진 모습에 대해서 생각해 보았다. 지금 나는 어떻게 공부하고 있는지, 앞으로 어땠으면 좋을지 정리하며 마무리하고자 한다. 기존의 학습 VS 프로그래밍학습 무언가를 배우는 것을 좋아하는 편이다. 여유를 가지고 관심 있는 것들을 배우는 것은 재미있다. 하지만 너무 시험이라는 항목으로 평가하는 것들이 많았다. 기존의 공부는 나에게 시험을 통과하기 위한 것이었다. 잘하고 실력이 있고, 퀄리티가 높은 것보다는 학습의 목적은 시험에 ..

[Auth] 인증과 인가 인증과 인가 인증(Authentication): 로그인 기능, 인증된 사용자인지 확인하는 것 인가(Authorization): 사용 권한이 있는지 확인하는 것 쿠키, 세션, 토큰 쿠키는 클라이언트 측의 저장소이다. 쿠키에 저장이 되면 쿠키는 서버 요청시마다 보내지게 된다. 탈취될 위험이 있어 보안적으로 중요한 내용은 저장하지 않는 편이다. 세션을 통한 인증은 서버측에서 세션저장소에 사용자를 등록하고 이것을 sessionId 값으로 관리한다. 클라이언트에 세션아이디를 알려주고 클라이언트는 세션아이디를 서버에 보내 사용자를 확인한다. 서버는 세션아이디를 가지고 세션저장소에서 인증정보를 확인한다. 사용자가 많아진다면 서버의 세션저장소의 부하가 발생한다. 서버는 토큰을 로그인한 사용자에..
[Q & A] 피드백 1 질문과 답변-1 Q. Void 타입으로 body없는 경우도 많이 리턴하나요?? 필요하면 void로 반환하기도 한다.(수정, 삭제가 제대로 됐는지 검증하는건 서버가 가져야 할 책임이지 클라이언트가 확인할 필요는 없다.) 보통은 빈 response body를 내려주는 경우가 많음. Q. Optional 사용에 대한 의견 쿼리 호출 횟수를 줄이는게 당연히 좋지만 그전에 읽기 좋은 코드를 작성하는게 먼저임 쿼리 한 번 더 호출했다고 서버 응답이 엄청 느려지고 그러진 않는다. 하지만 읽기 어려운 코드는 개발자가 수정하는데 많은 시간이 들기 때문에 더 큰 비용이 든다. optional은 외부와 통신하면서 null이 발생할 수 밖에 없는 상황이 있을 때 어떻게 처리할지 결정 할때만 사용합니다..
[테스트 작성하는 팁] 테스트는 상호 독립적으로 작성되어야 한다 공유하는 자원? Spring Bean, Database 등 테이블을 초기화한다. DB를 초기화 한다.(@Sql 어노테이션 등을 활용가능) 스프링 컨테이너를 초기화(Bean을 초기화하기 때문에 비싸다) SpringBootTest → 롤백이 되는 것은 아님. 테스트 환경을 구축 DirtiesContext → DB 영향은 없고, 기존 컨텍스트를 더렵혀서 매번 새로운 Bean이 로드되게 한다. MockBean(Mock 객체 테스트시) → 스프링 컨텍스트가 재사용 불가할수도 있다. 테스트는 빠른 피드백이 필요!!! (느림)E2E > Intergration > Unit (빠름) 공통된 테스트 환경(Test Context)을 설정 메소드분리를 통한 가독..
[배경지식 및 용어] pem 키 "Privacy Enhanced Mail" Apache 및 기타 웹 서버 플랫폼에서 사용되는 디지털 인증서 및 키에 대한 일반적인 컨테이너 형식 Bastion bastion host는 네트워크 특별히 설계된 공격을 견딜 수 있도록 구성에서 특수 목적 컴퓨터 컴퓨터는 일반적으로 단일 응용 프로그램 (예 : 프록시 서버) 을 호스팅하며 다른 모든 서비스는 컴퓨터에 대한 위협을 줄이기 위해 제거되거나 제한됨 ARP 주소 결정 프로토콜(Address Resolution Protocol, ARP)은 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 대응(bind)시키기 위해 사용되는 프로토콜 OOM-killer 하나의 메모리 사용이 높은 프로세스를 죽이는 프로세서 노드 IP를 가..
- Total
- Today
- Yesterday
- DB
- OS
- 글쓰기미션
- 모의면접준비
- 우아한테크코스
- 카카오
- 마스터즈코스
- Transaction
- 운영체제
- CS
- 월간회고
- 회고
- 알고리즘
- 내부코드
- TIL
- JS
- 코드스쿼드
- 인증
- 우테코수업
- 네트워크
- React
- TCP/IP
- 개발공부일지
- java
- 학습로그
- Spring
- 객체지향
- javascript
- JPA
- python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |