StudyRepository
728x90
article thumbnail
ASPICE
자동차 2023. 9. 6. 16:06

더욱 자세한 내용을 알고싶으시다면 이 글을 봐주세요https://touslesjourscoding.tistory.com/76      자동차 업계에 관심이 많은 사람이라면 많이 들어본 용어일 ASPICE란 무엇일까?   ASPICE 또는 Automotive SPICE는 소프트웨어 제품을 효과적이고 안정적으로 제공하는 조직의 능력을 평가하는 프레임워크이다. 1993년 ISO와 IEC에서 소프트웨어 프로세스 평가를 위한 SPICE 프레임워크의 파생물로 개발했다. ASPICE는 안전이 우려되지 않는 경우 설계 수행 방법을 다룬다는 점에서 기능 안전 표준(예: ISO 26262)과 다르다. ASPICE를 자세히 살펴보고 자동차 비즈니스에 어떤 이점이 있는지 살펴보자.    ASPICE 란 무엇일까?Automot..

article thumbnail
구조적 커버리지
코드검증 2023. 9. 5. 16:12

구조적 커버리지(Coverage)란 무엇인가 소프트웨어 테스트에서 구조적 커버리지(코드 커버리지)는 테스트에 의해 실행된 소스 코드의 양을 나타낸 것으로 소스 코드를 기반으로 수행하는 화이트박스 테스트를 통해 측정한다. -구조적 커버리지 측정의 필요성- 소프트웨어는 테스트를 통해 품질을 향상시킬 수 있다. 우리는 소프트웨어가 충분히 테스트되었는지, 언제 테스트를 종료해야 하는지 판단을 할 수 있어야한다. 이때 구조적 커버리지를 측정하면 소프트웨어를 얼마나 테스트했는지 정량적으로 확인할 수 있다. 구조적 커버리지의 종류 구문 커버리지 구문 커버리지는 시험 대상의 전체 구문 중에 테스트에 의해 실행된 구문을 측정한 것이다 위 코드를 테스트한다고 가정했을 때, x = 2를 테스트 데이터로 사용할 경우, 6번 ..

article thumbnail
CAN과 CAN FD
자동차 2023. 9. 4. 17:24

개념   자동차 통신 기술 중 하나의 CAN 통신 그리고 차세대 통신인 CAN FD 통신에 대해 알아보자  자동차 통신 기술은 ECU와 센서간의 통신을 위해서 많이 사용된다. 물론 속도가 문제가 되지 않는 곳이면 LIN통신도 사용하고있다. 속도 제약이 있는 곳에선 FlexRay를 쓰기도 한다. LIN, CAN, FlexRay 모두 차량에서 많이 사용되는 통신 방법이다. 1. LIN: 가장 싸지만 속도가 느리다.2. FlexRay: 가장 비싸지만 안전하고 속도가 빠르다.3. CAN: LIN과 FlexRay 중간정도의 성능과 안정성을 가지고 있다.    Controller Area Network (CAN)은 차량 내부 네트워크로 가장 많이 사용되는 통신 프로토콜이다. CAN 프로토콜은 비용, 신뢰 성 측면에..

article thumbnail
ASIL
자동차 2023. 9. 4. 16:41

정의ASIL(Automotive Safety Integrity Level)은 자동차 안전 무결성 수준을 나타낸다. 도로 차량의 기능 안전을 위해 ISO 26262 표준에 정의된 위험 분류 시스템이다.이 표준은 기능 안전을 "전기 또는 전자 시스템의 오작동 동작으로 인한 위험으로 인한 불합리한 위험이 없음"으로 정의한다. ASIL은 자동차 부품이 ISO 26262를 준수하기 위해 위험 가능성과 허용 가능성을 기반으로 하는 안전 요구 사항을 설정 한다.ISO 26262-A, B, C 및 D에 의해 식별된 4 개의 ASIL이 있다. ASIL  A는 가장 낮은 등급을 나타내고 ASIL D는 가장 높은 수준의 자동차 위험을 나타낸다.에어백, 잠금 방지 브레이크 및 파워 스티어링과 같은 시스템은 고과 관련된 위험이..

article thumbnail
ISO 26262
자동차 2023. 9. 4. 16:19

ISO 26262 기능 안전 표준이란? 자동차 업계에서 제품 설계 및 테스트에 대해 표준화된 방식을 도입함에 따라 안전성 관련 절차에 대한 규제가 늘고 있다. ISO 26262는 자동차 부품에서 중요한 부분을 차지하는 중요한 전기 전자 (E/E) 시스템을 위한 기능 안전 표준이다. ISO 26262는 전기 및 전자 시스템의 일반 기능 안전 표준인 IEC 61508에서 파생된 것이다. 자동차 산업 전반의 복잡성이 증가하면서, 안전성 준수 시스템을 제공하기 위한 노력이 커지고 있다. 예를 들어, 최신 자동차는 스로틀 바이 와이어(throttle-by-wire) 같은 전기 신호 기반 시스템을 사용한다. 이는 운전자가 가속 페달을 누르면 페달의 센서가 전자 제어 장치에 신호를 보내는 것이다. 이 제어 장치는 엔..

article thumbnail
CAN 통신
자동차 2023. 9. 1. 17:15

CAN 통신이란? CAN (Controller Area Network) 차량 내에서 호스트 컴퓨터 없이 마이크로 컨트롤러나 장치들이 서로 통신하기 위해 설계된 표준 통신 규격이다.  차량 내 *ECU(Electronic control unit)들은 CAN 프로토콜을 사용하여 통신한다.      CAN 특징  메시지 지향성 프로토콜(Message-Oriented Protocol) CAN은 노드의 주소에 의해 데이터가 교환되는 것이 아니라 메시지의 우선순위에 따라 ID(IDentifier)를 할당하고, 이 ID를 이용해 메시지를 구별하는 방식을 사용한다. 즉, 임의의 한 노드 A가 메시지를 전송했다면, A를 제외한 나머지 노드들은 A가 전송한 메시지가 자신에게 필요한 메시지인지를 판단(ID기반 판단)한다. ..

article thumbnail
스프링 트랜잭션 전파 - REQUIRES_NEW
카테고리 없음 2023. 7. 27. 14:08

외부 트랜잭션과 내부 트랜잭션을 완전히 분리해서 사용하는 방법에 대해서 알아보자. 외부 트랜잭션과 내부 트랜잭션을 완전히 분리해서 각각 별도의 물리 트랜잭션을 사용하는 방법이다. 그래서 커밋과 롤백도 각각 별도로 이루어지게 된다. 이 방법은 내부 트랜잭션에 문제가 발생해서 롤백해도, 외부 트랜잭션에는 영향을 주지 않는다. 반대로 외부 트랜잭션에 문제가 발생해도 내부 트랜잭션에 영향을 주지 않는다. 이렇게 물리 트랜잭션을 분리하려면 내부 트랜잭션을 시작할 때 REQUIRES_NEW 옵션을 사용하면 된다. 외부 트랜잭션과 내부 트랜잭션이 각각 별도의 물리 트랜잭션을 가진다. 별도의 물리 트랜잭션을 가진다는 뜻은 DB 커넥션을 따로 사용한다는 뜻이다. 이 경우 내부 트랜잭션이 롤백되면서 로직 2가 롤백되어도 ..

article thumbnail
트랜잭션 전파 (기본, 내부, 외부)
Spring 2023. 7. 27. 13:52

스프링이 제공하는 트랜잭션 전파에 대해서 알아보자. 외부 트랜잭션이 수행중인데, 내부 트랜잭션이 추가로 수행됨 외부 트랜잭션이 수행중이고, 아직 끝나지 않았는데, 내부 트랜잭션이 수행된다. 외부 트랜잭션이라고 이름 붙인 것은 둘 중 상대적으로 밖에 있기 때문에 외부 트랜잭션이라 한다. 처음 시작된 트랜잭션으로 이해하면 된다. 내부 트랜잭션은 외부에 트랜잭션이 수행되고 있는 도중에 호출되기 때문에 마치 내부에 있는것 처럼 보여서 내부 트랜잭션이라 한다. 스프링 이 경우 외부 트랜잭션과 내부 트랜잭션을 묶어서 하나의 트랜잭션을 만들어준다. 내부 트랜잭션이 외부 트랜잭션에 참여하는 것이다. 이것이 기본 동작이고, 옵션을 통해 다른 동작방식도 선택할 수 있다. 스프링은 이해를 돕기 위해 논리 트랜잭션과 물리 트..

article thumbnail
트랜잭션 commit, rollback
Spring 2023. 7. 24. 14:58

@Slf4j @SpringBootTest public class BasicTxTest { @Autowired PlatformTransactionManager txManager; @TestConfiguration static class Config{ @Bean public PlatformTransactionManager transactionManager(DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } } @Test void commit(){ log.info("트랜잭션 시작"); TransactionStatus status = txManager.getTransaction(new DefaultTransactionAt..

Getter, Setter (심화)
Spring 2023. 7. 24. 13:32

Getter Setter를 사용하는 이유 객체의 무결성을 보장하기 위해 예를 들어, 만약 외부에서 몸무게라는 필드에 직접 접근한다면 0보다 낮은 값을 줄 수도 있다. 이 경우 객체의 무결성이 깨지기 때문에 이를 방지하기 위해 Getter/Setter를 사용하여 데이터의 무결성을 지켜준다. 🤔 무결성이란 무엇인가? 데이터의 정확성과 일관성을 유지하고 보증하는 것을 말한다. 🤔 Getter/Setter를 사용하면 데이터 무결성이 지켜지는가? Getter, Setter를 이용해서 데이터를 생성 및 접근을 하게 되면 들어오는 값을 바로 저장하는 게 아닌, 한번 검증하고 처리할 수 있도록 할 수 있기 때문에 데이터의 무결성이 지켜진다. Getter : 본 필드의 값을 숨긴 채 내부에서 가공된 값을 꺼낼 수 있다...

article thumbnail
트랜잭션 AOP 주의 사항 - 프록시 내부 호출
Spring 2023. 7. 18. 10:00

@Transactional 을 사용하면 스프링의 트랜잭션 AOP가 적용된다. 트랜잭션 AOP는 기본적으로 프록시 방식의 AOP를 사용한다. 앞서 배운 것 처럼 @Transactional 을 적용하면 프록시 객체가 요청을 먼저 받아서 트랜잭션을 처리하고, 실제 객체를 호출해준다. 따라서 트랜잭션을 적용하려면 항상 프록시를 통해서 대상 객체(Target)을 호출해야 한다. 이렇게 해야 프록시에서 먼저 트랜잭션을 적용하고, 이후에 대상 객체를 호출하게 된다. 만약 프록시를 거치지 않고 대상 객체를 직접 호출하게 되면 AOP가 적용되지 않고, 트랜잭션도 적용되지 않는다. AOP를 적용하면 스프링은 대상 객체 대신에 프록시를 스프링 빈으로 등록한다. 따라서 스프링은 의존관계 주입시에 항상 실제 객체 대신에 프록시..

728x90