λ°˜μ‘ν˜•

전체 κΈ€ 293

[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 μ—°μ‚°μž 이후 λ‚΄μš©μ„ μ‹€ν–‰ν•©λ‹ˆλ‹€. λ”°λΌμ„œ ν•΄λ‹Ή 였λ₯˜λ₯Ό 방지할 수 μžˆμŠ΅λ‹ˆλ‹€.

[JavaScript] Moment.js μ˜€μ „/μ˜€ν›„ ν‘œκΈ° μœ„μΉ˜ μ‘°μ ˆν•˜λŠ” 방법

Intro μ•ˆλ…•ν•˜μ„Έμš”. 이번 μ‹œκ°„μ—λŠ” Moment.js μ—μ„œ μ˜€μ „/μ˜€ν›„ ν‘œκΈ°μ˜ μœ„μΉ˜λ₯Ό μ‘°μ ˆν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 제 경우 DBμ—μ„œ λ°›μ•„μ˜¨ datetime μ‹œκ°„μ„ 23.03.15 μ˜€ν›„ 10:30 의 ν˜•νƒœλ‘œ ν‘œν˜„ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ momentjs μ—λŠ” λ‹€μŒμ˜ μ˜ˆμ‹œκ°€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ format을 μ»€μŠ€ν…€ν•˜μ—¬ λ§Œλ“€μ–΄ 주기둜 κ²°μ •ν–ˆμŠ΅λ‹ˆλ‹€. How to solve the problem μ €λŠ” ν•΄λ‹Ή ν‘œκΈ°λ²•μ„ μ „μ—­μœΌλ‘œ μ μš©ν•΄μ•Ό ν–ˆκΈ° λ•Œλ¬Έμ— 곡톡 ν•¨μˆ˜λ₯Ό λ§Œλ“€μ–΄μ€¬μŠ΅λ‹ˆλ‹€. datetime μ‹œκ°„κ³Ό, format 의 2가지 νŒŒλΌλ―Έν„°λ₯Ό λ°›λŠ” ν•¨μˆ˜λ₯Ό λ§Œλ“€κ³ , momentλ₯Ό ν™œμš©ν•˜μ—¬ format을 μ μš©μ‹œμΌœμ€¬μŠ΅λ‹ˆλ‹€. 제 경우 DB의 datetime νƒ€μž…μ΄ string이고, YY.MM.DD hh:mm ν˜•νƒœμ˜€μŠ΅λ‹ˆλ‹€. 이..

[Kotlin] μ½”ν‹€λ¦° νŠΉμ • λ¬Έμžμ—΄ κΈ°μ€€μœΌλ‘œ 자λ₯΄λŠ” 방법 (split ν•¨μˆ˜ 이용)

Intro μ•ˆλ…•ν•˜μ„Έμš”. μ΄λ²ˆμ‹œκ°„μ—λŠ” μ½”ν‹€λ¦°μ—μ„œ νŠΉμ • λ¬Έμžμ—΄μ„ κΈ°μ€€μœΌλ‘œ 자λ₯΄λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. How to solve the problem μ½”ν‹€λ¦°μ—μ„œ νŠΉμ • λ¬Έμžμ—΄μ„ κΈ°μ€€μœΌλ‘œ 자λ₯΄λŠ” 방법은 λ‹€μ–‘ν•œλ°μš”, μ €λŠ” split ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄λ΄€μŠ΅λ‹ˆλ‹€. μ•„λž˜μ™€ 같은 슀트링이 μžˆλ‹€κ³  κ°€μ •ν•΄λ΄…μ‹œλ‹€. ν•΄λ‹Ή μŠ€νŠΈλ§μ—μ„œ split ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ '-' λ¬Έμžμ—΄ κΈ°μ€€μœΌλ‘œ μž˜λΌμ€λ‹ˆλ‹€. fun main() { val string = "kotlin-typescript-javascript" val result = string.split('-'); println(result) println(result[0]) println(result[1]) println(result[2]) } μœ„ μ½”λ“œ μ‹€ν–‰ κ²°κ³ΌλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. [kot..

Programming/Kotlin 2023.03.14
λ°˜μ‘ν˜•