Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat] 종목 지정가 알림 특정 조회 API 구현 #239

Merged
merged 3 commits into from
Feb 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/docs/asciidoc/api/fcm.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[[stock_target_price-create]]
[[fcm-create]]
=== FCM 토큰 등록

==== HTTP Request
Expand All @@ -11,6 +11,7 @@ include::{snippets}/fcm-delete/path-parameters.adoc[]
include::{snippets}/fcm-delete/http-response.adoc[]
include::{snippets}/fcm-delete/response-fields.adoc[]

[[fcm-delete]]
=== FCM 토큰 삭제

==== HTTP Request
Expand Down
13 changes: 13 additions & 0 deletions src/docs/asciidoc/api/stock_target_price.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,16 @@ include::{snippets}/stock_target_price-create/request-fields.adoc[]

include::{snippets}/stock_target_price-create/http-response.adoc[]
include::{snippets}/stock_target_price-create/response-fields.adoc[]

[[stock_target_price-one-search]]
=== 종목 지정가 알림 특정 조회

==== HTTP Request

include::{snippets}/stock_target_price-one-search/http-request.adoc[]
include::{snippets}/stock_target_price-one-search/path-parameters.adoc[]

==== HTTP Response

include::{snippets}/stock_target_price-one-search/http-response.adoc[]
include::{snippets}/stock_target_price-one-search/response-fields.adoc[]
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ Optional<StockTargetPrice> findByTickerSymbolAndMemberId(
@Param("tickerSymbol") String tickerSymbol,
@Param("memberId") Long memberId);

@Query("select distinct s from StockTargetPrice s join fetch s.stock stock join fetch s.targetPriceNotifications t where stock.tickerSymbol = :tickerSymbol and s.member.id = :memberId order by t.targetPrice asc")
Optional<StockTargetPrice> findByTickerSymbolAndMemberIdUsingFetchJoin(
@Param("tickerSymbol") String tickerSymbol,
@Param("memberId") Long memberId);

@Query("select distinct s from StockTargetPrice s join fetch s.targetPriceNotifications t join fetch s.stock where s.member.id = :memberId order by t.targetPrice asc")
List<StockTargetPrice> findAllByMemberId(@Param("memberId") Long memberId);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

Expand All @@ -22,21 +21,21 @@
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationCreateResponse;
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationDeleteResponse;
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationSearchResponse;
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationSpecifiedSearchResponse;
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationUpdateResponse;
import codesquad.fineants.spring.api.success.code.StockSuccessCode;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@RestController
@RequestMapping("/api/stocks/target-price/notifications")
@RequiredArgsConstructor
public class StockTargetPriceNotificationRestController {

private final StockTargetPriceNotificationService service;

@ResponseStatus(HttpStatus.CREATED)
@PostMapping
@PostMapping("/api/stocks/target-price/notifications")
public ApiResponse<TargetPriceNotificationCreateResponse> createStockTargetPriceNotification(
@Valid @RequestBody TargetPriceNotificationCreateRequest request,
@AuthPrincipalMember AuthMember authMember) {
Expand All @@ -48,7 +47,7 @@ public ApiResponse<TargetPriceNotificationCreateResponse> createStockTargetPrice
return ApiResponse.success(StockSuccessCode.OK_CREATE_TARGET_PRICE_NOTIFICATION, response);
}

@GetMapping
@GetMapping("/api/stocks/target-price/notifications")
public ApiResponse<TargetPriceNotificationSearchResponse> searchStockTargetPriceNotification(
@AuthPrincipalMember AuthMember authMember
) {
Expand All @@ -58,7 +57,18 @@ public ApiResponse<TargetPriceNotificationSearchResponse> searchStockTargetPrice
return ApiResponse.success(StockSuccessCode.OK_SEARCH_TARGET_PRICE_NOTIFICATIONS, response);
}

@PutMapping
@GetMapping("/api/stocks/{tickerSymbol}/target-price/notifications")
public ApiResponse<TargetPriceNotificationSpecifiedSearchResponse> searchTargetPriceNotifications(
@PathVariable String tickerSymbol,
@AuthPrincipalMember AuthMember authMember
) {
TargetPriceNotificationSpecifiedSearchResponse response = service.searchTargetPriceNotifications(tickerSymbol,
authMember.getMemberId());
log.info("특정 종목 지정가 알림 리스트 검색 결과 : {}", response);
return ApiResponse.success(StockSuccessCode.OK_SEARCH_SPECIFIC_TARGET_PRICE_NOTIFICATIONS, response);
}

@PutMapping("/api/stocks/target-price/notifications")
public ApiResponse<Void> updateStockTargetPriceNotification(
@Valid @RequestBody TargetPriceNotificationUpdateRequest request,
@AuthPrincipalMember AuthMember authMember
Expand All @@ -72,7 +82,7 @@ public ApiResponse<Void> updateStockTargetPriceNotification(
return ApiResponse.success(successCode);
}

@DeleteMapping
@DeleteMapping("/api/stocks/target-price/notifications")
public ApiResponse<Void> deleteAllStockTargetPriceNotification(
@Valid @RequestBody TargetPriceNotificationDeleteRequest request,
@AuthPrincipalMember AuthMember authMember) {
Expand All @@ -84,7 +94,7 @@ public ApiResponse<Void> deleteAllStockTargetPriceNotification(
return ApiResponse.success(StockSuccessCode.OK_DELETE_TARGET_PRICE_NOTIFICATIONS);
}

@DeleteMapping("/{targetPriceNotificationId}")
@DeleteMapping("/api/stocks/target-price/notifications/{targetPriceNotificationId}")
public ApiResponse<Void> deleteStockTargetPriceNotification(
@PathVariable Long targetPriceNotificationId,
@AuthPrincipalMember AuthMember authMember
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationDeleteResponse;
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationSearchItem;
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationSearchResponse;
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationSpecificItem;
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationSpecifiedSearchResponse;
import codesquad.fineants.spring.api.stock.response.TargetPriceNotificationUpdateResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
Expand Down Expand Up @@ -206,4 +208,22 @@ public TargetPriceNotificationUpdateResponse updateStockTargetPriceNotification(
stockTargetPrice.changeIsActive(request.getIsActive());
return TargetPriceNotificationUpdateResponse.from(stockTargetPrice);
}

public TargetPriceNotificationSpecifiedSearchResponse searchTargetPriceNotifications(
String tickerSymbol,
Long memberId
) {
List<TargetPriceNotificationSpecificItem> targetPrices = repository.findByTickerSymbolAndMemberIdUsingFetchJoin(
tickerSymbol, memberId)
.orElseThrow(() -> new NotFoundResourceException(StockErrorCode.NOT_FOUND_STOCK_TARGET_PRICE))
.getTargetPriceNotifications()
.stream()
.map(TargetPriceNotificationSpecificItem::from)
.collect(Collectors.toList());
TargetPriceNotificationSpecifiedSearchResponse response = TargetPriceNotificationSpecifiedSearchResponse.from(
targetPrices
);
log.info("특정 종목의 지정가 알림들 조회 결과 : response={}", response);
return response;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package codesquad.fineants.spring.api.stock.response;

import java.time.LocalDateTime;

import codesquad.fineants.domain.target_price_notification.TargetPriceNotification;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Getter
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
@ToString
public class TargetPriceNotificationSpecificItem {
private Long notificationId;
private Long targetPrice;
private LocalDateTime dateAdded;

public static TargetPriceNotificationSpecificItem from(TargetPriceNotification targetPriceNotification) {
return TargetPriceNotificationSpecificItem.builder()
.notificationId(targetPriceNotification.getId())
.targetPrice(targetPriceNotification.getTargetPrice())
.dateAdded(targetPriceNotification.getCreateAt())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package codesquad.fineants.spring.api.stock.response;

import java.util.List;

import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Getter
@NoArgsConstructor(access = AccessLevel.PRIVATE)
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Builder
@ToString
public class TargetPriceNotificationSpecifiedSearchResponse {
private List<TargetPriceNotificationSpecificItem> targetPrices;

public static TargetPriceNotificationSpecifiedSearchResponse from(
List<TargetPriceNotificationSpecificItem> targetPrices
) {
return TargetPriceNotificationSpecifiedSearchResponse.builder()
.targetPrices(targetPrices)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ public enum StockSuccessCode implements SuccessCode {
OK_CREATE_TARGET_PRICE_NOTIFICATION(HttpStatus.CREATED, "해당 종목 지정가 알림을 추가했습니다"),
OK_DELETE_TARGET_PRICE_NOTIFICATIONS(HttpStatus.OK, "해당 종목 지정가 알림을 제거했습니다"),
OK_SEARCH_TARGET_PRICE_NOTIFICATIONS(HttpStatus.OK, "모든 알림 조회를 성공했습니다"),
OK_SEARCH_SPECIFIC_TARGET_PRICE_NOTIFICATIONS(HttpStatus.OK, "종목 지정가 알림 특정 조회를 성공했습니다"),
OK_UPDATE_TARGET_PRICE_NOTIFICATION_ACTIVE(HttpStatus.OK, "종목 지정가 알림을 활성화하였습니다"),
OK_UPDATE_TARGET_PRICE_NOTIFICATION_INACTIVE(HttpStatus.OK, "종목 지정가 알림을 비 활성화하였습니다");

Expand Down
17 changes: 10 additions & 7 deletions src/main/resources/stocks.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ KR7000150003 000150 두산보통주 DOOSAN KOSPI
KR7065950008 065950 웰크론 Welcron Company Limited KOSDAQ
KR7348030008 348030 모비릭스 MOBIRIX Corporation KOSDAQ
KR7087260006 087260 모바일어플라이언스 MOBILE APPLIANCE, INC. KOSDAQ
KR7452430002 452430 사피엔반도체 Sapien Semiconductors Inc. KOSDAQ
KR7065710006 065710 서호전기 Seoho Electric Co.,Ltd. KOSDAQ
KR7353810005 353810 이지바이오 EASY BIO, Inc. KOSDAQ
KR7029960002 029960 코엔텍 Korea Environment Technology Co., LTD. KOSDAQ
Expand Down Expand Up @@ -125,7 +126,6 @@ KR7002810000 002810 삼영무역보통주 SamyungTrading KOSPI
KR7091340000 091340 에스엔케이폴리텍 S&K POLYTEC CO., LTD. KOSDAQ
KR7123420002 123420 위메이드플레이 Wemade Play KOSDAQ
KR7002720001 002720 국제약품보통주 Kukje Pharma KOSPI
KR7068400001 068400 에스케이렌터카보통주 SK RENT A CAR KOSPI
KR7256940008 256940 케이피에스 KPS Corporation KOSDAQ
KR7013520002 013520 화승코퍼레이션보통주 Hwaseung Corporation KOSPI
KR7046210001 046210 에이치엘비파나진 HLB PANAGENE KOSDAQ
Expand Down Expand Up @@ -420,6 +420,7 @@ KR7057880007 057880 피에이치씨 PHC KOSDAQ
KR7440320000 440320 주식회사 오픈놀 Openknowl Co.,Ltd. KOSDAQ
KR8840120008 950160 코오롱티슈진 Kolon TissueGene, Inc. KOSDAQ
KR7005360003 005360 모나미보통주 Monami KOSPI
KR7472220003 472220 신영해피투모로우제10호기업인수목적 Shinyoung HappyTomorrow No.10 Special Purpose Acquisition Company KOSDAQ
KR7071050009 071050 한국투자금융지주보통주 KOREA INVESTMENT HOLDINGS KOSPI
KR7105760003 105760 포스뱅크 POSBANK CO., LTD. KOSDAQ
HK0000449303 900340 윙입푸드홀딩스 WING YIP FOOD HOLDINGS GROUP KOSDAQ
Expand Down Expand Up @@ -600,6 +601,7 @@ KR7010140002 010140 삼성중공업보통주 SamsungHeavyIndustries KOSPI
KR7031440001 031440 신세계푸드보통주 SHINSEGAE FOOD KOSPI
KR7001750009 001750 한양증권보통주 HanyangSecurities KOSPI
KR7006840003 006840 AK홀딩스보통주 AK Holdings, Inc. KOSPI
KR7068100007 068100 케이웨더 Kweather Co., Ltd. KOSDAQ
KR7373220003 373220 LG에너지솔루션보통주 LG Energy Solution KOSPI
KR7084730001 084730 팅크웨어 Thinkware Systems Corporation KOSDAQ
KR7011170008 011170 롯데케미칼보통주 LOTTE CHEMICAL CORPORATION KOSPI
Expand Down Expand Up @@ -781,7 +783,6 @@ KR7081150005 081150 티플랙스 Tplex Co., Ltd. KOSDAQ
KR7096760004 096760 JW홀딩스 보통주 JW HOLDINGS CORPORATION KOSPI
KR7006800007 006800 미래에셋증권보통주 MIRAE ASSET SECURITIES KOSPI
KR7347860009 347860 알체라 Alchera Inc. KOSDAQ
KR7114120009 114120 크루셜텍 Crucialtec Co., Ltd. KOSDAQ
KR7033920000 033920 무학보통주 Muhak KOSPI
KR7033790007 033790 스카이문스테크놀로지 Skymoons Technology, Inc. KOSDAQ
KR7078130002 078130 국일제지 KUK-IL PAPER MFG CO.,LTD KOSDAQ
Expand Down Expand Up @@ -1348,7 +1349,6 @@ KR7169670007 169670 코스텍시스템 Kostek Systems KONEX
KR7189860000 189860 서전기전 SEOJEON ELECTRIC MACHINERY Co.,Ltd. KOSDAQ
KR7269620001 269620 시스웍 SYSWORK CO., LTD KOSDAQ
KR7003160009 003160 디아이보통주 DI KOSPI
KR7426550000 426550 아이비케이에스제19호기업인수목적 IBKS No.19 Special Purpose Acquisition Company KOSDAQ
KR7386580005 386580 한화플러스제2호기업인수목적 Hanwha Plus No 2 Special Purpose Acquisition Company KOSDAQ
KR7009150004 009150 삼성전기보통주 SamsungElectroMechanics KOSPI
KR7115500001 115500 케이씨에스 Korea Computer & Systems Inc. KOSDAQ
Expand Down Expand Up @@ -1480,6 +1480,7 @@ KR7228850004 228850 레이언스 RAYENCE CO., LTD. KOSDAQ
KR7434480000 434480 모니터랩 MONITORAPP CO., LTD. KOSDAQ
KR7087010005 087010 펩트론 Peptron, Inc. KOSDAQ
KR7331380006 331380 포커스에이치엔에스 FOCUS HNS KOSDAQ
KR7469480008 469480 아이비케이에스제24호기업인수목적 IBKS No.24 Special Purpose Acquisition Company KOSDAQ
KR7004380002 004380 삼익THK보통주 SAMICK THK KOSPI
KR7092130004 092130 이크레더블 e-Credible Co., Ltd. KOSDAQ
KR7338840002 338840 와이바이오로직스 Y-Biologics, Inc KOSDAQ
Expand All @@ -1491,6 +1492,7 @@ KR7004170007 004170 신세계보통주 Shinsegae Co.,Ltd KOSPI
KR7149950008 149950 아바텍 AVATEC CO., LTD. KOSDAQ
KR7008350001 008350 남선알미늄보통주 NamsunAluminium KOSPI
KR7211050000 211050 인카금융서비스 INCAR FINANCIAL SERVICE Co.,Ltd. KOSDAQ
KR7091440008 091440 한울소재과학 HanWool Materials Science, Inc. KOSDAQ
KR7086040003 086040 바이오톡스텍 Biotoxtech Co., Ltd. KOSDAQ
KR7029530003 029530 신도리코보통주 SINDOH KOSPI
KR7262840002 262840 아이퀘스트 IQUEST Co., Ltd. KOSDAQ
Expand Down Expand Up @@ -1546,6 +1548,7 @@ KR7228340006 228340 동양파일 TONGYANG PILE, Inc. KOSDAQ
KR7039740006 039740 한국정보공학 Korea Information Engineering Services KOSDAQ
KR7348350000 348350 위드텍 WITHTECH, Inc. KOSDAQ
KR7079650008 079650 서산 Seo San Co. Ltd. KOSDAQ
KR7443670005 443670 에스피소프트 SPSoft Inc. KOSDAQ
KR7046120002 046120 오르비텍 Orbitech Co., Ltd. KOSDAQ
KR7097520001 097520 엠씨넥스보통주 MCNEX Co.,Ltd. KOSPI
KR7050890003 050890 쏠리드 Solid, Inc. KOSDAQ
Expand Down Expand Up @@ -1615,6 +1618,7 @@ KR7208340000 208340 파멥신 PharmAbcine Inc. KOSDAQ
KR7034310003 034310 NICE보통주 NICEHoldings KOSPI
KR7177830007 177830 파버나인 PAVONINE CO., LTD. KOSDAQ
KR7037950003 037950 엘컴텍 ELCOMTEC CO.,LTD KOSDAQ
KR7199550005 199550 레이저옵텍 Laseroptek Co., Ltd. KOSDAQ
KR7189980006 189980 흥국에프엔비 HYUNGKUK F&B Co., Ltd KOSDAQ
KR7430220004 430220 신영해피투모로우제8호기업인수목적 Shinyoung HappyTomorrow No.8 Special Purpose Acquisition Company KOSDAQ
KR7178780003 178780 일월지엠엘 ILWOUL GML KOSDAQ
Expand Down Expand Up @@ -2033,7 +2037,6 @@ KR7222810004 222810 세토피아 Setopia KOSDAQ
KR7219130002 219130 타이거일렉 TigerElec Co.,Ltd. KOSDAQ
KR7005870001 005870 휴니드테크놀러지스보통주 HuneedTechnologies KOSPI
KR7002210003 002210 동성제약보통주 DongsungPharmaceutical KOSPI
KR7091440008 091440 텔레필드 Telefield, Inc. KOSDAQ
KR7026150003 026150 특수건설 TuksuConstruction KOSDAQ
KR7226340008 226340 본느 Bonne Co., Ltd. KOSDAQ
KR7004450003 004450 삼화왕관보통주 SamhwaCrown&Closure KOSPI
Expand Down Expand Up @@ -2126,7 +2129,6 @@ KR7419270004 419270 신영해피투모로우제7호기업인수목적 Shinyoung
KR7124500000 124500 아이티센 ITCEN CO., LTD. KOSDAQ
KR7035420009 035420 NAVER보통주 NAVER KOSPI
KR7034230003 034230 파라다이스 Paradise Company Limited KOSDAQ
KR7372290007 372290 하나머스트7호기업인수목적 Hana Must Seven Special Purpose Acquisition Company KOSDAQ
KR7004780003 004780 대륙제관 DaeryukCan KOSDAQ
KR7372170001 372170 윤성에프앤씨 YUNSUNG F&C Co.,Ltd KOSDAQ
KR7011210002 011210 현대위아보통주 HYUNDAI WIA KOSPI
Expand All @@ -2139,7 +2141,6 @@ KR7348950007 348950 제이알글로벌리츠보통주 JR GLOBAL REIT KOSPI
KR7340360007 340360 다보링크 DAVOLINK KOSDAQ
KR7033340001 033340 좋은사람들 GOOD PEOPLE CO., LTD. KOSDAQ
KR7001290006 001290 상상인증권보통주 SANGSANGININVESTMENT&SECURITIES KOSPI
KR7183410000 183410 골프존데카 GolfzonDeca KONEX
KR7322970005 322970 무진메디 Moogene Medi KONEX
KR7083450007 083450 글로벌스탠다드테크놀로지 Global Standard Technology Co., Ltd. KOSDAQ
KR7023160005 023160 태광 T. K. CORPORATION KOSDAQ
Expand Down Expand Up @@ -2373,6 +2374,7 @@ KR7185750007 185750 종근당보통주 CHONGKUNDANG KOSPI
KR7282330000 282330 BGF리테일보통주 BGF Retail KOSPI
KR7009520008 009520 (주)포스코엠텍 POSCO M-TECH CO.,LTD. KOSDAQ
KR7417010006 417010 나노팀 NanoTIM Co. Ltd. KOSDAQ
KR7472850007 472850 폰드그룹 POND GROUP CO., LTD. KOSDAQ
KR7388610008 388610 지에프씨생명과학 GFC Life Science KONEX
KR7310210000 310210 보로노이 Voronoi, Inc. KOSDAQ
KR7437780000 437780 엔에이치기업인수목적24호 NH SPECIAL PURPOSE ACQUISITION 24 COMPANY KOSDAQ
Expand Down Expand Up @@ -2424,7 +2426,6 @@ KR7221980006 221980 케이디켐 KDCHEM CO., LTD. KOSDAQ
KR7038530002 038530 케이바이오 KBIO COMPANY KOSDAQ
KR7272210006 272210 한화시스템보통주 HANWHA SYSTEMS KOSPI
KR7032540007 032540 티제이미디어 TJ MEDIA CO.,LTD KOSDAQ
KR7427950001 427950 하나금융23호기업인수목적 Hana Financial Twenty-three SPAC KOSDAQ
KR7276040003 276040 스코넥엔터테인먼트 SKONEC ENTERTAINMENT Co., Ltd. KOSDAQ
KR7244880001 244880 나눔테크 NANOOM KONEX
KR7043100007 043100 솔고바이오메디칼 Solco Biomedical Co.,Ltd KOSDAQ
Expand Down Expand Up @@ -2710,6 +2711,7 @@ KR7000320002 000320 노루홀딩스보통주 NorooHoldings KOSPI
KR7054940002 054940 엑사이엔씨 EXA E&C, Inc KOSDAQ
KR7272450008 272450 진에어보통주 JIN AIR KOSPI
KR7411080005 411080 샌즈랩 SANDS LAB Inc. KOSDAQ
KR7452400005 452400 이닉스 INICS Corporation KOSDAQ
KR7043090000 043090 엑서지21 Exergy21 KOSDAQ
KR7003542008 003547 대신증권2우선주(신형) DAISHINSECURITIES(2PB) KOSPI
KR7037460003 037460 삼지전자 SAMJI ELECTRONICS CO., LTD. KOSDAQ
Expand Down Expand Up @@ -2753,6 +2755,7 @@ KR7036800001 036800 나이스정보통신 NICE INFORMATION&TELECOMMUNICATION INC
KR7020710000 020710 시공테크 SIGONG TECH Co.,Ltd. KOSDAQ
KR7101490001 101490 에스앤에스텍 S&S TECH CORPORATION KOSDAQ
KR7080420003 080420 모다이노칩 Moda-InnoChips Co., Ltd. KOSDAQ
KR7415380005 415380 스튜디오삼익 Studio Samick Co.,Ltd. KOSDAQ
KR7372800003 372800 아이티아이즈 ITEYES Inc. KOSDAQ
KR7005721006 005725 넥센1우선주 NEXEN(1P) KOSPI
KR7050960004 050960 수산아이앤티 SOOSAN INT Co., LTD. KOSDAQ
Expand Down
Loading