728x90

Front νŽ˜μ΄μ§€ λ§Œλ“ λ‹€κΈΈλž˜ μžλ°” 슀크립트 μ’€ 만질 쀄 μ•Œμ•˜λŠ”λ°, 타이핑 μ—°μŠ΅μš© ν”„λ‘œμ νŠΈμ˜€λ‹€. 사싀 타이핑 μ—°μŠ΅λ„ μ•„λ‹ˆλ‹€. 볡뢙 ν•˜λΌκ³  μ½”λ“œλ₯Ό λ‹€ μ œκ³΅ν•΄μ€¬μœΌλ‹ˆκΉŒ. 코딩은 μ•„λ‹ˆκ³  HTML ꡬ쑰λ₯Ό λ°°μš°λŠ” κ°•μ˜μ΄λ‹€. λ‚΄μš©μ΄ μ—†μ–΄μ„œ νšŒκ³ λž„κ±΄ μ—†κ³  ν•΄λ³Έ κ±° μ •λ¦¬λ‚˜ ν•˜λŠ” κΈ€.

 

μ•„λ¬΄νŠΌ κ·Έλ ‡κ²Œ λ³΅λΆ™ν•œ html νŽ˜μ΄μ§€λ₯Ό μ—…λ‘œλ“œν•˜λ©΄ μ €μž₯μ†Œμ— μžˆλŠ” js 파일과 μ‘°ν•©ν•΄μ„œ λ°°ν¬ν•΄μ£ΌλŠ” 것 κ°™λ‹€. μ•„λž˜λŠ” κ·Έλ ‡κ²Œ λ°°ν¬λ‹Ήν•œ νŽ˜μ΄μ§€μ΄λ‹€. 

 

μ—¬ν–‰μž λ‹˜μ˜ 덕담 νŽ˜μ΄μ§€

덕담 ν•œλ§ˆλ”” λ‚¨κ²¨μ£Όμ„Έμš”!

deokdam.spartacodingclub.kr

 

 

 


 

Open Graph Protocol

Ogp ( https://ogp.me/ )

 

μƒˆλ‘­κ²Œ 배운건 og νƒœκ·Έ; 링크 미리보기에 담을 λ‚΄μš©μ„ κ·œμ •ν•˜λŠ” 방식이닀. HTML meta νƒœκ·Έμ— og 속성값을 지정해주면 λœλ‹€.

<html>
<head>

<!-- ν•„μˆ˜ 메타 속성 -->
<meta property="og:title"	content="제λͺ©"/>
<meta property="og:type"	content="μŒμ•…,기사,λ™μ˜μƒ_λ“±_개체_μœ ν˜•"/>
<meta property="og:image"	content="이미지URL"/>
<meta property="og:url"		content="개체의URL"/>

<!-- 선택 메타 속성 쀑 일뢀-->
<meta property="og:description"	content="2λ¬Έμž₯_μ •λ„μ˜_μ„€λͺ…"/>
<meta property="og:locale"		content="μ–Έμ–΄_DEFAULT_en_US"/>

</head>
...
</html>

 

μ—¬νƒœ 미리보기 κΈ°λŠ₯은 ν•΄λ‹Ή μ£Όμ†Œλ‘œ μš”μ²­ν•˜μ—¬ 받은 νŽ˜μ΄μ§€ 전체λ₯Ό νŒŒμ‹±ν•œ λ‹€μŒ, μž„μ˜μ˜ 이미지와 글을 κ°€μ Έμ™€μ„œ λ³΄μ—¬μ£ΌλŠ” 쀄 μ•Œμ•˜λ‹€. ꡳ이 그런 수고λ₯Ό ν•˜μ§€ μ•ŠκΈ° μœ„ν•΄ head에 λ‚΄μš©μ„ μš”μ•½ν•΄μ£ΌλŠ” ν˜•νƒœμΈ 것 κ°™λ‹€.

메타(ꡬ 페이슀뢁)μ—μ„œ 처음으둜 κ°œλ°œν•œ ν”„λ‘œν† μ½œμ΄λΌκ³  ν•œλ‹€. 정말 별 것 μ•„λ‹Œ 것 같은 κΈ°λŠ₯인데 μ§€κΈˆμ€ λͺ¨λ‘κ°€ μ“Έ 만큼 널리 νΌμ Έμžˆλ‹€. μ˜€λŠ˜λ„ λ°˜μ„±ν•˜κ²Œ λœλ‹€. μ‚¬μ†Œν•˜λ‹€κ³  μƒκ°ν•œ 것이 세상을 λ°”κΏ”λ‚˜κ°€λŠ” 것을 보며, λ‚΄ νŽΈν˜‘ν•œ μ‹œμ„ μ„ ꡐ정할 ν•„μš”κ°€ μžˆμŒμ—.

 

 


 

Amazon S3

Amazon S3 - μ €μž₯μ†Œ μ„œλΉ„μŠ€

 

ν•΄λ‹Ή μ˜ˆμ œμ—μ„œ ν•„μš”ν•œ λͺ¨λ“  λ¦¬μ†ŒμŠ€(폰트, 이미지, μ½”λ“œ λ“±)λŠ” S3μ—μ„œ κ°€μ Έμ˜¨λ‹€. 

<!-- 이런 -->
<meta property="og:image" content="https://2022-01-newyear.s3.ap-northeast-2.amazonaws.com/ogimage.png" />
<!-- μ‹μœΌλ‘œ -->
<script src="https://2022-01-newyear.s3.ap-northeast-2.amazonaws.com/free_newyear_2022.js"></script>

 

μ›Ή νŽ˜μ΄μ§€ ν˜ΈμŠ€νŒ…λ„ CloudFront - S3둜 ν•˜κ³  μžˆλ‹€.

 

 


 

ν”„λŸ°νŠΈ κΈ°λŠ₯ λœ―μ–΄λ³΄κΈ°

 

κΆκΈˆν–ˆλ˜ μžλ°” 슀크립트 νŒŒμΌμ„ μ½μ–΄λ³΄κΈ°λ‘œ ν–ˆλ‹€. μˆ˜μ—…μ—μ„œ μž‘μ„±ν•œ html νŽ˜μ΄μ§€μ—μ„œ μ°Έκ³ ν•˜λŠ” js 파일 μ£Όμ†Œλ₯Ό κ·ΈλŒ€λ‘œ 타고 λ“€μ–΄κ°€μ„œ,

 

슀크립트λ₯Ό μ–»μ—ˆλ‹€. ν˜Ήμ€ κ°œλ°œμžλ„κ΅¬(F12 - Source)μ—μ„œ 확인해도 λœλ‹€.

 

ν”„λŸ°νŠΈμ—”λ“œλ₯Ό 잘 μ•„λŠ” 건 μ•„λ‹ˆμ§€λ§Œ 일단 μ€„λ°”κΏˆ μ•ˆλœ μ•žλΆ€λΆ„μ€ jquery λΌμ΄λΈŒλŸ¬λ¦¬κ² κ±°λ‹ˆ ν•˜κ³  λ‚ λ Έλ‹€. μ–΄μ°¨ν”Ό μ½λŠ” μš©λ„λ‹ˆκΉŒ μ•„λž˜ λΆ€λΆ„λ§Œ 남김. (ν•œκΈ€μ΄ κΉ¨μ§ˆμˆ˜λ„ μžˆλŠ”λ° μ€‘μš”ν•œ 건 μ•„λ‹ˆλ‹ˆκΉŒ 인코딩은 λ¬΄μ‹œν•œλ‹€)

 

 

λ§Žμ€ κΈ°λŠ₯이 μžˆλŠ” νŽ˜μ΄μ§€κ°€ μ•„λ‹ˆλΌμ„œ λ‚΄μš©λ„ κ°„λ‹¨ν•˜λ‹€.

$(document).ready(function(){
    if (checkPublished()) {
        set_bg();
        make_footer();
    }
    list();
    $('.btn').attr('onclick','post()')
});

 

 

  • μ£Όμ†Œμ— httpκ°€ ν¬ν•¨λ˜μ—ˆμœΌλ©΄ -> λ°°κ²½ 이미지 μ„€μ •(set_bg), footer μ„€μ •(make_footer)ν•΄μ£Όκ³ 
  • 덕담 λͺ©λ‘κ³Ό μ’Œν‘œ λ°›μ•„μ™€μ„œ λ°”κ΅¬λ‹ˆ div μ•ˆμ— λ¦¬μŠ€νŒ…ν•œ λ’€ (list)
  • 덕담 남기기 λ²„νŠΌ 클릭 -> 덕담 λ‚΄μš© μœ νš¨μ„± μ²΄ν¬ν•˜κ³  μ„œλ²„μ— 전솑(post)

 

 

getRandomInt()

그런데 μœ„ 파일만 λ΄€μ„λ•Œ λ‚œμˆ˜ 생성 ν•¨μˆ˜λŠ” λŒ€μ²΄ μ–΄λ””μ„œ μ“°λŠ” 건지 λͺ¨λ₯΄κ² λ‹€. λ‚œμˆ˜κ°€ ν•„μš”ν•  λ•ŒλŠ” 덕담 μ’Œν‘œκ°’ ꡬ할 λ•Œ 말고 μžˆλ‚˜ μ‹ΆκΈ΄ ν•œλ°, μ •μž‘ post()μ—μ„œλŠ” getRandomInt()λ₯Ό 콜 ν•˜μ§€ μ•ŠλŠ”λ‹€.

덕담 등둝 μ‹œ msg만 λ³΄λ‚΄μ§€λ§Œ 리슀트둜 λ°˜ν™˜λ˜λŠ” κ°’μ—λŠ” μ’Œν‘œκ°€ μžˆλŠ” κ±Έ 보면, 받은 λ©”μ‹œμ§€μ— λŒ€ν•œ μ’Œν‘œκ°’μ„ μ„œλ²„μ—μ„œ κ³„μ‚°ν•˜λŠ” λͺ¨μ–‘이닀. μ•„λ‹ˆλ©΄ 죽은 ν•¨μˆ˜κ±°λ‚˜.

function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min)) + min;
}

 

 

post()

[λ°”κ΅¬λ‹ˆμ— 덕담 남기기] λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ post()κ°€ μ‹€ν–‰λ˜κ³ , 데이터λ₯Ό λ“±λ‘ν•˜κΈ° μœ„ν•΄ postνƒ€μž…μœΌλ‘œ APIλ₯Ό ν˜ΈμΆœν•œλ‹€. μž…λ ₯ν•œ λ©”μ‹œμ§€ μœ νš¨μ„± 검사λ₯Ό post()μ—μ„œ 같이 μ‹€ν–‰ν•œλ‹€. 예λ₯Ό λ“€λ©΄ λ‚΄μš© λ―Έμž…λ ₯, κΈ€μž 수 μ œν•œ, κ·Έ μ™Έ λ¬΄μ‹œν•  문자λ₯Ό κ²€μΆœν•˜λŠ” μž‘μ—…μ΄λ‹€.

function post() {
    let msg = prompt('οΏ½λΊ£λ–žοΏ½οΏ½ �낅젰�섏꽭��') // λŒ€μΆ© 덕담 μž…λ ₯ν•˜λΌλŠ” λ‚΄μš©
    
    /// 빈 값이면 μ’…λ£Œ
    if (msg === null) {
        return
    }
    /// κΈ€μžμˆ˜ 5자 미만이면 μ’…λ£Œ
    if (msg.length < 5) {
        alert('5ζΉ²οΏ½οΏ½οΏ½ �댁긽 �낅젰�섏꽭��!') // 5κΈ€μž μ œν•œμžˆλ‹€λŠ” λ‚΄μš©
        return
    }
    /// ; λ˜λŠ” \\λ₯Ό μ§€μš°κ³  λ©”μ‹œμ§€ μ €μž₯ν•˜κΈ°
    /// μ½”λ“œλ‘œ μΈμ‹ν• κΉŒλ΄ ν•΄λ‹Ή λ¬Έμžλ“€μ„ μ§€μš°λŠ” 것 κ°™μŒ
    msg.replace(';','').replace('\\','')
    
    $.ajax({
        type: "POST",
        url: "https://spartacodingclub.kr/api/free_newyear_2022/write", // 덕담 μž…λ ₯ μ‹œ ν˜ΈμΆœν•˜λŠ” REST API
        data: {'mycode':mycode, 'msg':msg},
        success: function (response) {
            alert('οΏ½κΎ¨μ¦Ί!'); // μ™„λ£Œ!λΌλŠ” λ‚΄μš©
            window.location.reload();
        }
    })
}

 

 

μˆ˜μ •ν•œ μžλ°” 슀크립트 파일 μ μš©ν•˜κΈ°

μŠ€ν¬λ¦½νŠΈλŠ” μ„œλ²„μ— μžˆλŠ” νŒŒμΌμ„ κ°€μ Έμ™€μ„œ νŽ˜μ΄μ§€ λ‘œλ“œ μ‹œ μ μš©ν•˜λ―€λ‘œ λ‘œμ»¬μ—μ„œ μˆ˜μ •ν•΄λ΄€μž μ˜λ―Έκ°€ μ—†λ‹€. κ·Έλž˜μ„œ μˆ˜μ •ν•œ μžλ°” 슀크립트λ₯Ό μ μš©ν•˜κ³  μ‹Άλ‹€λ©΄, μš°λ¦¬κ°€ κ±΄λ“œλ¦΄ 수 μžˆλŠ” μœ μΌν•œ 파일인 index.html을 μ»€μŠ€ν„°λ§ˆμ΄μ§•ν•΄μ•Ό ν•œλ‹€. (λ‹€λ₯Έ 방법이 μžˆμ„ μˆ˜λ„ μžˆμ§€λ§Œ 일단 ν”„λŸ°νŠΈμ•Œλͺ»μΈ λ‚΄κ°€ ν•  쀄 μ•„λŠ” 건 이것밖에 μ—†λ‹€.)

 

1. μ €μž₯μ†Œμ— μžˆλŠ” μžλ°” 슀크립트 νŒŒμΌμ„ μ°Έμ‘°ν•˜λŠ” 이 μ½”λ“œλ₯Ό μ£Όμ„μ²˜λ¦¬ν•œλ‹€.

<!--<script src="https://2022-01-newyear.s3.ap-northeast-2.amazonaws.com/free_newyear_2022.js"></script>-->

 

2. κΈ°λŠ₯은 κ·ΈλŒ€λ‘œ λ™μž‘ν•΄μ•Ό ν•˜λ―€λ‘œ jquery CDN을 μΆ”κ°€ν•΄μ€€λ‹€. μ–΄μ°¨ν”Ό κΈ°λ³Έ κΈ°λŠ₯만 μ“°λŠ” 것 κ°™μ•„μ„œ μ•„λ¬΄κ±°λ‚˜ κΈμ–΄μ˜΄

<script src="https://code.jquery.com/jquery-3.6.0.min.js"
        integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>

 

3. μ»€μŠ€ν„°λ§ˆμ΄μ§• ν•œ free_newyear_2022.js의 λ‚΄μš©μ„ <script> νƒœκ·Έ μ•ˆμ— λΆ™μ—¬ λ„£λŠ”λ‹€.

<head>
	<script>
    	let mycode = '...';
        
        // Paste code Here
        
    </script>
</head>

 

4. μˆ˜μ •ν•œ index.html을 λ°°ν¬ν•œλ‹€.

 

(5. μ΄μ œλŠ” ν•œ κΈ€μž 덕담도 μž…λ ₯ν•  수 μžˆλ‹€.)

 

 

 


 

 

... 뭘 ν•œ 건지 λͺ¨λ₯΄κ² λ‹€. 제발 생산적인 것 μ’€ ν•˜μž

728x90

'πŸ“— ν•™μŠ΅κ³Ό 개발 기둝 > Web' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

NodeJS 기초 μƒ˜ν”Œ  (0) 2022.02.03
JWT(JsonWebToken) - κ°œλ…  (0) 2021.06.21

+ Recent posts