본문 바로가기

[전기전자] SMPS 전원장치 소개 들어가기취미로 정리하는 SMPS(Switching Mode Power Supply) 전원장치에 대한 개괄적인 이론이다. SMPS는 스위칭 소자를 사용해 전원을 공급하는 장치이다. 이전 리니어 전원 공급 장치는 AC을 낮은 전압 AC로 낮추고 DC로 변환하는 과정을 거친다. 그렇기에 매우 큰 트랜스포머가 필요로 했다. SMPS는 AC를 바로 높은 전압 DC로 변환하고 DC-DC로 원하는 전압으로 낮춘다. 작은 트랜스포머로도 고성능 및 고효율의 전원을 공급할 수 있게 된다. 이글은 어떻게 동작하는지에 초점을 맞추었다.작성자: http://ospace.tistory.com/ (ospace114@empal.com)SMPS 기본 동작SMPS는 다양한 토폴로지가 사용된다. 제가 모든 것을 이해해서 설명할 수는 없고.. 더보기
[전기전자] LED 취침등 수리 잘쓰고 있던 취침등이 스위치를 ON하는 중에 스파크가 튀면서 고장났다. 다음 부터는 다시는 켜지지 않았다. 고장났으니 수리를 해보자.작성자: http://ospace.tistory.com/ (ospace114@empal.com)회로분석먼저 회로 분석을 해보자. 부품 몇 개가 누락되어 있다.CBB22: https://www.alldatasheet.co.kr/datasheet-pdf/pdf_kor/1150741/ETC1/CBB22.html기본적인 구조는 MB6S에 의해 교류를 직류로 정규하고 뒤에 다이오드와 커패시터에 의해 평활한다. 그리고 마지막으로 LED로 전압을 공급한다.먼저, 각 회로 소자가 정상인지 확인해보았다. 먼저 저항, 다이오드 그리고 커패시터 위주로 측정했다.사용한 소자MB6SSi-Bridg.. 더보기
[전기전자] BLDC 모터 소개 들어가기취미로 정리하는 BLDC 모터 원리입니다. 참고용으로 봐주세요. 일반적인 DC 모터는 가운데 코일 부분이 회전자가 돌아갈때에 브러시를 사용해서 흘러가는 전류를 제어한다. 이로 인해 구조는 단순해지지만 효율과 내구성 문제가 발생한다. BLDC(Brushless DC) 모터는 가운데 브러시를 제거한 형태로 내구성과 출력이 좋아지지만 복잡해지는 단점이 있다. 가운데 브러시가 없기 대문에 흘러가는 전류를 직접 제어해줘서 복잡해지는 단점이 있다.작성자: http://ospace.tistory.com/ (ospace114@empal.com)원리모터의 기본적인 구조는 자석의 자기력으로 인한 인력과 척력을 사용해서 회전운동을 만드는 장치이다. 다른 극은 잡아당기고(인력) 같은 극은 밀어내는(척력) 힘을 사용하여.. 더보기
[kotlin] JPA 3: Spring Boot에서 Entity 매핑 확장 들어가기이번에는 엔티티 정의위한 확장된 어노테이션에 대해서 다룰려고 한다. 더 다양한 타입과 알아두면 좀더 도움이 되는 어노테이션에 대해서 다룰 예정이다.작성자: http://ospace.tistory.com/ (ospace114@empal.com)엔티티 정의엔티티 정의를 위한 추가적인 어노테이션이다.@IdClass, @EmbeddedId: 복합키 정의@Enumerated: enum 타입 매핑@Temporal: 날짜 타입 매핑@Transient: 매핑 무시@Lob: BLOB CLOB 타입 매핑@CreationTimestamp: insert 시간 자동 저장@UpdateTimestamp: update 시간 자동 저장@CreateDate: 엔티티 생성시간@LastModifiedDate: 엔티티 변경시간@Cre.. 더보기
[kotlin] JPA 14: Spring Boot에서 프록시와 예외처리 들어가기알아두면 도움이되는 프록시, 그리고 예외에 대해서 살펴보자.작성자: ospace114@empal.com, http://ospace.tistory.com/프록시JPA에서는 프록시는 엔티티를 로딩하지 않고 이를 대신하는 객체로 사용된다. 그리고 실제 사용 시점에 엔티티를 로딩하는 역할을 한다. 이는 지연 로딩을 위한 기능으로 성능 최적화 용도로 사용된다. 프록시 구현 방식은 엔티티 클래스를 상속해서 프록시 클래스를 구현한다. 이때 사용하는 프록시 클래스는 단순 객체이면 org.hibernate.proxy.HibernateProxy을 사용하고 리스트 객체이면 org.hibernate.collection.spi.PersistentBag을 사용한다. 이런 프록시를 통해 원본 엔티티의 지연 로딩 같은 기능을.. 더보기
[kotlin] JPA 13: Spring Boot에서 최적화 들어가기최적화 관련해서 N+1 문제, 읽기 전용, 페이징 처리에 대한 추가내용을 다룰려고 한다. 이미 앞에서 성능 관련해서 1차와 2차 캐시에 대해서 어느정도 다루었고 데이터 조회 성능 관련해서도 살펴보았다. 이번에서는 최적화 관련해서 잡스러운 부분을 조금더 다룰려고 한다.작성자: http://ospace.tistory.com/ (ospace114@empal.com)N+1 문제N+1문제는 조회 쿼리를 실행할 때 연관 데이터가 N가 있는 경우 모든 데이터를 가져오기위해 N+1 개만큼 조회하는 상황으로 대표적인 성능 이슈이다. 이런 상황은 연관관계에 의해서 한 엔티티가 연관된 여러 엔티티 객체를 로딩하는 경우로 자신 엔티티를 로딩하고 연관관계 속성을 확인하고 연관된 엔티티 들을 로딩하게 된다. 더욱이 목록형.. 더보기
[kotlin] JPA 12: Spring Boot에서 2차 캐시 들어가기JPA에서 캐시는 2단계를 걸쳐서 동작한다. 1차 캐시는 영속 컨텍스에 해당하며 세션이 유지될때까지 현재 세션의 모든 엔티티는 영속 컨텍스트 내에서 캐싱된다. 영속 컨텍스트는 트랜잭션 범위에서 유효한데 보통 트랜잭션이 종료되면 영속 컨텍스트도 같이 종료된다. 그렇기 때문에 세션과 영속 컨텍스트의 생명이 동일하다고 할 수 있다. 세션이 종료된 경우 1차 캐시가 사라지기 때문에 애플리케이션 전체에서 보면 동일한 요청을 할 경우 새로 캐싱해서 처리하기 때문에 효율적이지 않다. 결국, 세션에 상관 없이 캐시를 유지 관리하는 2차 캐시가 필요하다. 2차 캐시에 대해서 살펴보자.작성자: http://ospace.tistory.com/ (ospace114@empal.com)2차 캐시애플리케이션 라이프타임에.. 더보기
[kotlin] JPA 11: Spring Boot에서 트랜잭션과 락 들어가기트랜잭션은 단순해보이면서도 복잡하다. 이는 단지 한개 처리만 다루는게 아니라 여러 처리가 동시에 발생할 경우를 다루기 때문이다. 데이터베이스에서도 이를 해결하기 위한 기능을 제공하고 있지만 JPA에서 트랜잰션을 다룰 다양한 기능을 제공하고 있다. 하나씩 살펴보자.작성자: http://ospace.tistory.com/ (ospace114@empal.com)트랜잭션트랜잭션은 ACID를 보장하기 위한 기술이다. ACID는 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)의 약자이다. 만약, 여러 트랜잭션이 실행될 경우 다른 트랜잭션에서 대한 액세스 권한을 제어 해야한다. 이를 위해 ANSI에서는 트랜잭션 격리 수준 4단계로 나누어서 .. 더보기

반응형