본문 바로가기

전체 글

(28)
[25년 1월 3주차 - 미국] SpaceX 로켓 발사 폭발 SpaceX 로켓 발사 폭발 (250116) SpaceX의에서 개발 중인 로켓인 Starship이 발사 직후에 폭발했다. 위 사진은 SpaceX 로켓이 폭발한 후 폭발 잔여물이 하늘에 떠다니는 모습이다. 이를 본 사람들은 마치 별똥별 같다며 신기해했다.  일론 머스크는 폭발의 원인이 연료 누출인 것 같다고 말했다. 영상https://weather.com/science/space/video/spacex-flight-test-7-explosion
[MYSQL] 프로그래머스 - 식품분류별 가장 비싼 식품의 정보 조회하기 문제 핵심1. '통계 함수의 결과'에 추가 조건을 붙이고 싶을 때에는 서브 쿼리 또는 임시 테이블을 사용해야 한다.  비교SELECT fp.category, max(fp.price) as max_price, fp.product_namefrom food_product fpgroup by fp.categoryhaving fp.category in ('과자', '국','김치','식용유')order by max_price desc 위 쿼리에서는 조회할 때 max(price)를 하고,category 별로 Grouping 했고 (Group by),Grouping 한 결과에 조건을 추가했다 (Having). 하지만 위 쿼리는 정답이 아니다. 조회 컬럼 2개만 봤을 때는 category별로 Max price를 추출한다..
[MYSQL] 프로그래머스 - 경기도에 위치한 식품창고 목록 출력하기 문제  핵심1. 쿼리에서 if문 사용하기  1. if문 사용if(조건, 참일 때, 거짓일 때) 예시select fw.id, if(fw.is_free is null, 'N', fw.is_free) as is_freefrom ~  정답select fw.warehouse_id, fw.warehouse_name, fw.address, if(fw.freezer_yn is null, 'N', fw.freezer_yn) as freezer_ynfrom food_warehouse fwwhere fw.address like '경기도%'order by fw.warehouse_id asc
[TS] this is incompatible with sql_mode=only_full_group_by 해결 방법 본 포스팅은 Mysql에서 group by 절을 사용하다가 발생한 에러에 대한 기록이다.  발생한 에러Error 1055: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'a.author_name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_byError 1055: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'a...
[JPA] 1차 캐시 작동 조건과 적용 범위 1차 캐시 작동 조건JPA 1차 캐시 작동 조건은 다음과 같다.1차 캐시는 PK로 조회하는 것이 아니면 작동하지 않는다. 영속성 컨텍스트에서 조회할 때 @Id 즉 PK로 등록하고 조회하기 때문이다. 1차 캐시(영속성 컨텍스트)는 다음과 같이 key-value 형태의 구조를 가진다. - Key: DB의 PK- Value: Entity 1차 캐시 적용 범위 JPA 1차 캐시의 적용 범위는 동일 트랜잭션, 동일 스레드 내 이다. 다시 말하면, 로직에 트랜잭션을 설정하지 않으면 1) JPA 1차 캐시는 동작하지 않는다.1차 캐시가 동작하지 않기 때문에 2) 변경 감지도 적용되지 않는다. 나아가 3) 멀티 스레드를 이용한다면, 서로 다른 스레드 간에는 JPA 1차 캐시가 적용되지 않는다.  1. 1차 캐시 ..
[MYSQL] 프로그래머스 - 서울에 위치한 식당 목록 출력하기 문제  테이블 관계일대다(1:N) 관계의 테이블식당 : 식당 리뷰 = 1 : N핵심1. 리뷰 평균 점수2. 소숫점 세 번째 자리에서 반올림3. 정렬: 첫 번째 기준으로 정렬, 단 첫 번째 기준이 같다면 두 번째 기준으로 정렬 1. 평균 점수select avg(식당_리뷰.점수)from 식당join 식당_리뷰 on 식당.id = 식당_리뷰.식당_idgroup by 식당id 2. 소숫점 세 번째 자리에서 반올림select round(식당_리뷰.점수, 2)from 식당_리뷰 3. 정렬: 첫 번째 기준으로 정렬, 단 첫 번째 기준이 같다면 두 번째 기준으로 정렬select *from 식당_리뷰order by 첫 번째 기준, 두 번째 기준  * 주의할 점기준 컬럼의 순서가 어플리케이션에서 정렬하는 것과 차이가 있다..
총수일가 3.5%로 그룹 지배.. 어떻게?? 아시아경제 | 네이버총수일가 3.5%로 그룹 지배…한화·아모레 등 총수2세에 약정​  순환출자, 내부지분율, 계열사 지분 보유 등으로 인해 대기업 집단에서 총수 일가가 적은 지분으로도 그룹 전체를 지배할 수 있다. 총수 일가가 적은 지분으로 그룹 전체를 장악할 수 있는 이유?!계열사 간의 순환출자순환출자란, 여러 계열사들이 서로 지분을 보유하면서 서로 연결된 형태를 만드는 걸 말한다.예를 들어, A회사가 B회사를, B회사가 C회사를, C회사가 다시 A회사를 지배하는 방식으로 말이다.이런 구조에서는 총수 일가가 소유한 지분이 적어도, 계열사들이 서로 지분을 보유하면서 실질적으로 그룹 전체를 지배할 수 있다.높은 내부지분율총수 일가가 적은 지분을 가지고 있더라도, 계열사들이 서로 얽혀있는 구조에서는 총수의 ..
동시성 처리 자바 코드에서 Thread Safe하도록 만드는 방법으로 synchronized 키워드 사용하는 것이 있다. 하지만 Thread Safe와 동시성 이슈로 인한 DB 데이터 정합성과는 또 다른 이야기이다.즉 synchronized 키워드로는 모든 동시성 이슈를 해결할 수는 없다. 이유는 다음과 같다.Synchronized 의 문제점1. Synchronized 는 하나의(각각의) 프로세스 안에서만 보장이 된다.서버가 여러 대일 경우에는 각 서버에서 돌아가는 프로세스에서 각각 하나씩의 synchronized 메소드를 실행할 수 있게 된다.즉 두 개 이상의 프로세스에서 동일한 DB값에 접근해서 데이터를 수정할 수 있게 된다는 것이다. 둘 이상의 프로세스가 동일한 DB값에 접근해서 데이터를 수정한다면 synchr..