λ°˜μ‘ν˜•

전체 κΈ€ 295

[React] λ‘œλ”©λ°”(loading bar) ν‘œμ‹œ 및 λ‘œλ”© 속도 μ‘°μ ˆν•˜λŠ” 방법 (+ setTimeout)

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” λ¦¬μ•‘νŠΈμ—μ„œ λ‘œλ”©λ°” ν‘œμ‹œ 및 λ‘œλ”© 속도λ₯Ό μ‘°μ ˆν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. How to solve the problem λ‹€μŒμ˜ List μ»΄ν¬λ„ŒνŠΈκ°€ μžˆλ‹€κ³  κ°€μ •ν•΄λ΄…μ‹œλ‹€. handleFilterClickν•¨μˆ˜λ₯Ό 클릭 ν• λ•Œλ§ˆλ‹€ ν•„ν„°κΈ°λŠ₯이 μž‘λ™λ˜λŠ” λ‘œμ§μž…λ‹ˆλ‹€. ν•„ν„°λ₯Ό λˆ„λ₯Ό λ•Œλ§ˆλ‹€ ν•„ν„°κ°€ λœλ“―ν•œ λ™μž‘μ„ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ λ‘œλ”©λ°”λ₯Ό 좔가보도둝 ν•˜κ² μŠ΅λ‹ˆλ‹€. const List: NextPage = () => { const {dataList, setDataList} = useLoginStore(); const [totalCtn, setTotalCtn] = useState(); const [filterStatus, setFilterStatus] = useState("ALL"); const..

Framework/React 2023.04.05

[AWS] DynamoDBλž€?

Intro μ•ˆλ…•ν•˜μ„Έμš”. μ΄λ²ˆμ— μΉœκ΅¬λ“€κ³Ό ν•¨κ»˜ μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈλ₯Ό μ‹œμž‘ν•˜κ²Œ λ˜μ—ˆλŠ”λ°μš”, AWS DynamoDB λ₯Ό μ‚¬μš©ν•˜κΈ°λ‘œ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ‚¬μš©ν•˜κΈ°μ— μ•žμ„œ DynamoDB에 λŒ€ν•΄ κ°„λ‹¨νžˆ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. DynamoDB DynamoDBλŠ” Amazon Web Servicesμ—μ„œ μ œκ³΅ν•˜λŠ” ν˜ΈμŠ€νŒ… NoSQL DBμž…λ‹ˆλ‹€. μŠ€μΌ€μΌμ΄ 컀지더라도 reliable performance a managed experience, crypto libraries μ—…λ°μ΄νŠΈ ν•˜κΈ° μœ„ν•΄ μ„œλ²„μ— SSH둜 μ—°κ²°ν•  ν•„μš”κ°€ μ—†μŒ a small, μ‹¬ν”Œν•œ API allowing for μ‹¬ν”Œν•œ key-value access as well as more advanced query patterns. DynamoDB Features NOSQL 데이터..

Devops/AWS 2023.04.03

[React] array data λ§ˆμ§€λ§‰ μžμ‹ μš”μ†Œμ— border bottom line css μΆ”κ°€ν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” λ¦¬μ•‘νŠΈμ—μ„œ array λ°μ΄ν„°μ˜ λ§ˆμ§€λ§‰ μžμ‹ μš”μ†Œμ— border bottom line μΆ”κ°€ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. How to solve the problem 1. map ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터 λ°°μ—΄μ˜ 길이λ₯Ό κ΅¬ν•΄μ€λ‹ˆλ‹€. const arrayLength = array.length; 2. map ν•¨μˆ˜μ—μ„œ ν˜„μž¬ 데이터 μš”μ†Œμ˜ 인덱슀 값을 λ°›μ•„ μ˜΅λ‹ˆλ‹€. array.map((item, index) => { //... }) 3. 인덱슀 값이 λ°°μ—΄ 길이보닀 1 μž‘μ€ κ²½μš°μ—λŠ” border bottom을 μΆ”κ°€ν•©λ‹ˆλ‹€ array.map((item, index) => { const isLastItem = index === arrayLength - 1; return ( {item}..

Framework/React 2023.03.31

[Kotlin] Text '..' could not be parsed: Unable to obtain LocalDate from TemporalAccessor 였λ₯˜ 원인 및 ν•΄κ²° 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. μ½”ν‹€λ¦° μŠ€νŠΈλ§μ„ μ½”ν‹€λ¦° λ‚ μ§œλ‘œ λ³€ν™˜ν•˜λ˜ 도쀑 μ•„λž˜μ™€ 같은 μ—λŸ¬κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. import java.math.BigDecimal import java.math.RoundingMode import java.time.LocalDate import java.time.LocalDateTime import java.time.format.DateTimeFormatter import java.util.* fun main(args: Array) { val input = "2301" val formatter = DateTimeFormatter.ofPattern("yyMM", Locale.KOREA) val date = LocalDate.parse(input, formatter).minusYears..

Programming/Kotlin 2023.03.30

[CSS] κΈ΄ 단어 처리 μ‹œ μ€„λ°”κΏˆ κΈ°μ€€ μ •ν•˜λŠ” 방법 (단어 κΈ°μ€€ / ν•œ κΈ€μž κΈ°μ€€)

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” CSSμ—μ„œ 긴단어 처리 μ‹œ μ€„λ°”κΏˆ 단어 기쀀을 μ •ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. How to solve the problem μ•„λž˜μ˜ html이 μžˆλ‹€κ³  κ°€μ •ν•΄λ΄…μ‹œλ‹€. {item.desc} μ²˜μŒμ— μ œκ°€ μ μš©ν•œ CSSλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 단어 뒀에 elispsis μ²˜λ¦¬λŠ” λ˜μ—ˆμ§€λ§Œ, μ€„λ°”κΏˆ μ²˜λ¦¬κ°€ μ œλŒ€λ‘œ μ•ˆλ˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€. > p { margin-bottom: 8rem; font-size: 10rem; line-height: 1.3; overflow: hidden; white-space: normal; text-overflow: ellipsis; display: -webkit-box; } λ”°λΌμ„œ μ €λŠ” word-breakλΌλŠ” 속성을 μ΄μš©ν•˜μ—¬ break-all 둜 μ§€μ •ν•΄μ€¬μŠ΅λ‹ˆ..

Programming/CSS 2023.03.30

[React] typescript useRef μ‚¬μš©μ‹œ undefined / null 였λ₯˜ λ°œμƒ 원인 및 ν•΄κ²° 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” react μ—μ„œ useRef μ‚¬μš©μ‹œ undefined / null 였λ₯˜ λ°œμƒ 원인과 ν•΄κ²° 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. μš°μ„  μ œκ°€ useRefλ₯Ό μ‚¬μš©ν•œ μ½”λ“œ μ˜ˆμ œλŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€. clientHeightλ₯Ό μ‘°μ ˆν•˜κΈ° μœ„ν•΄ useRefλ₯Ό μ‚¬μš©ν•˜μ—¬ div tag에 μ μš©ν–ˆμŠ΅λ‹ˆλ‹€. const divRef = useRef(null); const [handlePosition, setHandlePosition] = useState('300vh'); useEffect(() => { setHandlePosition(`${(divRef.current.clientHeight * 3) / 300}px`); }, []); return ( {/* some content */} ); ν•˜μ§€..

Framework/React 2023.03.29

[React] λ¦¬μ•‘νŠΈ apexcharts xμΆ•(xaxis) νŠΉμ • κ°’μœΌλ‘œ μ‹œμž‘ν•˜λ„λ‘ μ„€μ •ν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” λ¦¬μ•‘νŠΈ apexcharts xμΆ• 값을 νŠΉμ • κ°’μœΌλ‘œ μ‹œμž‘ν•˜λ„λ‘ μ„€μ •ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. How to solve the problem 제 κ²½μš°μ—λŠ” μƒˆλ²½ 5μ‹œλΌλŠ” νŠΉμ • κ°’μœΌλ‘œ x좕을 μ‹œμž‘ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ €λŠ” apxechart xaxis의 min 속성을 μ‚¬μš©ν•΄ μ œκ°€ μ›ν•˜λŠ” μ‹œκ°„μ„ μ•„λž˜μ™€ 같이 μ„€μ •ν•΄μ£Όμ—ˆμŠ΅λ‹ˆλ‹€. xμΆ• 값은 상황에 따라 λ‹€λ₯Όν…Œλ‹ˆ 년도/달/일 등이 ν•„μš”ν•˜λ‹€λ©΄ μ»€μŠ€ν…€ν•˜μ—¬ μ‚¬μš©ν•˜λ©΄ λ©λ‹ˆλ‹€. xaxis: { min: new Date(new Date().setHours(5, 0, 0, 0)).getTime(), } μ•„λž˜λŠ” 전체 μ½”λ“œμž…λ‹ˆλ‹€. var options = { chart: { type: 'line' }, series: [{ name: ..

Framework/React 2023.03.28

[React] λ¦¬μ•‘νŠΈ 툴팁 (Tooltip) κ΅¬ν˜„ν•˜κΈ° / μ™ΈλΆ€μ˜μ—­ 클릭 μ‹œ 툴팁 μˆ¨κΈ°λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. μ΄λ²ˆμ‹œκ°„μ—λŠ” λ¦¬μ•‘νŠΈμ—μ„œ νˆ΄νŒμ„ κ΅¬ν˜„ν•˜λŠ” 방법, 툴팁 μ™ΈλΆ€ μ˜μ—­ 클릭 μ‹œ νˆ΄νŒμ„ μˆ¨κΈ°λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. Let's look at detail μ•„λž˜μ™€ 같은 λΆ€λͺ¨ μ»΄ν¬λ„ŒνŠΈκ°€ μžˆλ‹€κ³  κ°€μ •ν•΄λ΄…μ‹œλ‹€. 3개의 툴팁 μ»΄ν¬λ„ŒνŠΈκ°€ 있고, 툴팁 μ»΄ν¬λ„ŒνŠΈμ—λŠ” 각기 λ‹€λ₯Έ 툴팁 μ„€λͺ…을 props둜 μ „λ‹¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. const SomeComponent: NextPage = props => { return ( λ‰΄μŠ€ μ‡Όν•‘ 지도 ); } export default SomeComponent; 툴팁 μ»΄ν¬λ„ŒνŠΈλŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ ν˜„μž¬ κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” 툴팁 μ»΄ν¬λ„ŒνŠΈλŠ” λ¬Έμ œκ°€ μžˆμ—ˆμŠ΅λ‹ˆλ‹€, μ„ νƒλœ 툴팁이 μžˆμ„ λ•Œ λ‹€λ₯Έ 툴팁이 μ„ νƒλ˜μ–΄λ„, λ™μ‹œμ— 툴팁 descκ°€ ν‘œμΆœλ©λ‹ˆλ‹€. λ˜ν•œ μ™ΈλΆ€ μ˜μ—­μ„ 클릭 ν• λ•Œ μ—¬..

Framework/React 2023.03.21

[React] λ¦¬μ•‘νŠΈ apexcharts μ»€μŠ€ν…€ 툴팁 (custom tooltip) λ§Œλ“œλŠ” 방법, νˆ΄νŒμ— μ‹œκ°„ 데이터와 κ°’ ν‘œμ‹œν•˜κΈ°

Intro μ•ˆλ…•ν•˜μ„Έμš”. μ΄λ²ˆμ‹œκ°„μ—λŠ” λ¦¬μ•‘νŠΈμ—μ„œ apexcharts λ₯Ό μ΄μš©ν•˜μ—¬ μ»€μŠ€ν…€ νˆ΄νŒμ„ λ§Œλ“œλŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. How to solve the problem apexcharts λ₯Ό μ‚¬μš©ν•œλ‹€λŠ” κ°€μ •ν•˜μ—, μ•„λž˜μ˜ series 데이터와 chart option이 μžˆλ‹€κ³  μƒκ°ν•΄λ΄…μ‹œλ‹€. const series: any = [ { name: 'EBAY', data: [ ['2023-03-20T07:00:22.625Z', '123124.82'], ['2023-03-20T06:00:20.103Z', '52353.83'], ['2023-03-20T05:00:16.960Z', '98943.91'], ['2023-03-20T04:00:15.051Z', '796756.65'], ['2023-03-20T0..

Framework/React 2023.03.20

[TypeScript] cannot read properties of undefined μ—λŸ¬ 원인 및 해결방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•˜λ˜ 도쀑 μ•„λž˜μ™€ 같은 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. Why? ν•΄λ‹Ή properties의 값을 읽을 수 μ—†κΈ° λ•Œλ¬Έμ— λ°œμƒν•˜λŠ” 였λ₯˜μž…λ‹ˆλ‹€. How to solve the problem ν•΄λ‹Ή μ—λŸ¬λ₯Ό ν•΄κ²°ν•˜λŠ” 방법은 μ—¬λŸ¬κ°€μ§€μΈλ°μš”, μ €λŠ” κ·Έ μ€‘μ—μ„œλ„ Optional Chaining μ—°μ‚°μž (λ¬ΌμŒν‘œ μ—°μ‚°μž)λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή 였λ₯˜λ₯Ό ν•΄κ²°ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ½”λ“œ μ‚¬μš© μ˜ˆμ œλŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€. return ( {item?.name} ) μ΄λ ‡κ²Œ Optional Chaining μ—°μ‚°μž (λ¬ΌμŒν‘œ μ—°μ‚°μž)λ₯Ό μ‚¬μš©ν•  경우 μœ νš¨ν•œ 값이 없을 λ•ŒλŠ” undefinedλ₯Ό λ°˜ν™˜ν•˜κ³ , 값이 μžˆμ„ λ•ŒλŠ” Optional Chaining μ—°μ‚°μž 이후 λ‚΄μš©μ„ μ‹€ν–‰ν•©λ‹ˆλ‹€. λ”°λΌμ„œ ν•΄λ‹Ή 였λ₯˜λ₯Ό λ°©μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ°˜μ‘ν˜•