반응형
목록
간단하고 쉽게 (49)
[꼼꼼한 개발자] 꼼코더
😊 @Autowired의 장점 코드를 간결하게 작성할 수 있다. 코드 양이 줄어들어 가독성이 좋아진다. 어노테이션을 사용하여 의존성 주입이 간편해진다 😂 @Autowired의 단점 순환참조(circular dependency)가 발생할 가능성이 있다. 어디서 어떤 의존성이 주입되는지 명확하게 파악하기 어렵다.(특히 테스트 시 더욱 부각되는 단점) 순환참조란? 간단하고 쉽게 이해하기 > https://ccomccomhan.tistory.com/143 😊 생성자 주입의 장점 순환참조(circular dependency) 방지 가능하다. 코드의 명확성과 안정성이 높아진다. 또한 컴파일 시점에 오류를 발견할 수 있어서 오류를 빠르게 수정할 수 있다. 테스트 시점에서 의존성을 주입하기가 쉬워지기 때문에 테스트 코..
🫨 순환참조(circular dependency)란? 둘 이상의 클래스나 빈(Bean)이 서로를 참조하는 상황을 의미한다. 🎥 예시 클래스 A가 클래스 B를 참조하고 클래스 B가 클래스 C를 참조하고 클래스 C가 다시 클래스 A를 참조하는 경우를 말한다. 👨🏻🏫 마무리 순환참조가 발생하면, 객체 생성 시점에서 무한루프에 빠지게 되어 프로그램이 정상적으로 동작하지 않을 수 있다. 이러한 문제를 해결하기 위해서는 순환참조가 발생하지 않도록 설계를 잘해야 하며 객체 간의 의존성을 최소화하고 의존성 주입 방법을 적절히 선택하여 이를 해결할 수 있다.
🧑🏻🏫 간단 정리 HTTPS : HTTP에서 S(Secure) 보안이 추가된 것, 즉 HTTP보다 보안이 향상된 것 암호화 : '전송 데이터'를 '암호화 데이터'로 변환 복호화 : '암호화 데이터'를 '일반 데이터'로 변환 대칭키 : 암호화, 복호화에 사용하는 비밀키가 서로 같은(대칭) 방식 비대칭키 : 암호화와 복호화에 사용하는 비밀키가 서로 다른(비대칭) 방식 🌐 HTTPS란? HTTPS는 Hyper Text Transfer Protocol Secure의 약어로 인터넷에서 정보를 안전하게 전송하기 위한 프로토콜이다. HTTPS는 일반 HTTP와는 달리, 데이터를 암호화하여 보호한다. 예시로 이전에는 로그인 페이지에서 로그인 도중 제3자가 중간에 정보를 엿볼 수 있었다.(ID, PW같은 정보또한 마찬..
🙋🏻♂️ 간단 정리 동기 : 순차적으로 코드를 실행하는 방식 비동기 : 동시에 여러 작업을 처리하는 방식 🫱 동기(Synchronous) 동기는 순차적으로 코드를 실행하는 방식. 즉, 어떤 작업이 끝날 때까지 다음 작업을 실행하지 않는다. 따라서 순서대로 진행되기 때문에 결괏값이 예측 가능하고, 코드가 간단하고 직관적입니다. 🤝 비동기(Asynchronous) 비동기는 동시에 여러 작업을 처리하는 방식입니다. 어떤 작업이 완료될 때까지 기다리지 않고 다음 작업을 실행합니다. 이는 병렬적으로 진행되기 때문에 결괏값이 예측하기 어렵고, 코드가 복잡해질 수 있습니다. 🧹 결론 동기와 비동기는 아래와 같은 각각의 장단점이 있다. 따라서 어떤 방식을 선택할지는 상황에 따라 다르게 결정해야 한다. 동기는 코드가 ..
나는 문득 이런 생각이 들었다 "동기화는 '충돌방지' 원자적 연산도 '충돌방지' 그럼 동기화 == 원자적 연산 같은 말 아니야?" 그래서 나름 찾아보고 글을 적어본다! ♻️ 동기화 멀티스레드 환경에서 여러 스레드가 공유하는 데이터를 안전하게 접근하고 조작하기 위해 사용하는 기술. 동기화는 공유 데이터에 접근하는 스레드들이 서로 충돌하지 않도록 해주는 역할을 한다. ⚛️ 원자적 연산 한번에 실행되거나 실행되지 않는 연산을 의미. 원자적 연산은 연산이 실행되는 도중에 다른 스레드에 의해 방해받지 않는 것이 보장되어야 하며 실행결과도 항상 일관성이 있어야 한다. 👀차이점 동기화와 원자적 연산은 비슷한 개념이지만, 같은 의미는 아니다. 예를 들어, "i++" 연산은 하나의 단위 연산이 아니므로( 현재 i의 값을..
🧐 MIME TYPE 이란?(Multipurpose Internet Mail Extensions) MIME TYPE은 인터넷에서 전송되는 다양한 종류의 데이터를 식별하기 위한 형식 ,주로 웹 브라우저가 웹 서버로부터 받은 데이터를 해석할 때 사용된다. 예를 들어, HTML 문서의 MIME TYPE은 "text/html"이고, JPEG 이미지의 MIME TYPE은 "image/jpeg"이다. MIME TYPE은 파일의 확장자나 내용에 따라 결정됩니다. MIME TYPE은 HTTP 헤더에서 Content-Type 등으로 지정됩니다. 🔨 웹 개발 시 MIME TYPE의 역할 MIME 유형은 웹 개발에서 중요한 역할을 한다. MIME 유형은 서버가 클라이언트에게 전송하는 컨텐츠의 종류를 알려주는 메타데이터(me..
🧐 로깅이란? '로깅을 수행한다'는 말은 프로그램이 실행되는 동안 중간 결과나 오류를 기록하는 것을 의미한다. 이러한 로그는 프로그램의 동작 상황을 추적하고 분석하는 데 유용하다. 로깅은 보통 파일이나 콘솔 출력 등의 형태로 수행된다.. 예시로 로그를 System.out.println을 이용하여 콘솔 출력으로 수행할 수 있다. 로깅은 프로그램의 디버깅과 에러 처리, 운영 시스템의 모니터링 등 다양한 용도로 사용된다. 디버깅을 위해서는 프로그램이 실행될 때 중간 결과나 변수 값 등을 로그에 남겨서 디버깅에 활용할 수 있다. 에러 처리를 위해서는 예외가 발생한 시점과 그 원인을 로그에 남겨서 이후 에러 처리에 활용할 수 있다. 운영 시스템의 모니터링을 위해서는 로그를 기반으로 프로그램의 동작 상황을 모니터링..
📚자바 컬렉션(Collection)이란? 자바 컬렉션(Collection)은 객체를 모아 놓은 것을 표현하는 자바 API. 자바에서 제공하는 컬렉션은 다양한 형태와 성격을 가지고 있으며, 대표적인 것으로 List, Set, Map 등이 있다. 🚂 List 순서가 있는 데이터의 모음 중복된 데이터를 허용. ArrayList, LinkedList 등의 구현체가 있다. 🍽️ Set 순서가 없는 데이터의 모음 중복된 데이터를 허용하지 않는다 HashSet, TreeSet 등의 구현체가 있다. 🗺️ Map Key-Value 쌍의 데이터를 저장하는 자료구조 Key는 중복될 수 없다. HashMap, TreeMap 등의 구현체가 있다. 추가적인 내용은 아래를 참고해보자. https://ccomccomhan.tisto..