반응형

현재 사용 중인 아즈라 이어 팁 리뷰입니다.

이어 팁의 중요도는 모두 알고 계실 것 같아요

작년 외이도염으로 뉴스에도 떠들썩하게 논란이 되었었죠

매일 끼고 다니는 이어폰이 귀에 맞지 않거나

부작용 알레르기가 일어나서 심각한 문제로

이어질 수 있어서 굉장히 중요한데요,

이어 팁을 바꾸는 것만으로도 많이 개선할 수 있습니다.

이 이어 팁을 사용해봤더니

자연스럽게 신체에 맞게 변형되고 귀를 부드럽게 채워주며

팝 필터를 고급 소재로 쓰다

보니 음질이 향상되고 기능이 증폭되는 걸

 

몸소 경험했습니다.

여러분도 꼭 한번 경험해 보시길 추천드립니다.

아즈라 이어 팁은 버즈 프로를 사용하던 때

알게 되어 그때부터 사용했던 팁입니다.

다른 유명한 이어 팁들도 많았는데요

저는 한 가지를 살 때 리뷰와 정보를 많이 찾아보고 사는 편인데

그때 가장 극찬이었던 이어 팁이 아즈라 이어 팁이었습니다.

그래도 저는 궁금해서 다른 좋다는

이어 팁도 같이 사서 써봤는데

역시 이걸 추천하는 데는 이유가 있더라고요.. 

소니 이어폰에서도 아즈라 팁을 잠시 사용했었고,

이번에 에어팟 프로 2세대를 구입하면서

기본 번들 이어 팁을 사용했는데

귀가 자꾸 아프고 귀 안쪽에 트러블이 나기 시작하여

아즈라 이어 팁을 구매하고 옮겨온 후 10개월간 실 사용 해왔고

여러 가지 측면에서 월등히 기본 번들 이어 팁을

압도했기에 제품 추천 리뷰를 쓰게 되었습니다.

 

이어 팁 하나 바꾼다고 음질이 좋아진다고?

말도 안 돼

제가 처음 이어 팁에 입문할 때 반신반의하며 생각했던 질문입니다.

에어팟 프로 2세대 기본 번들 이어 팁을 사용할 때와

지금 아즈라 이어 팁을 사용할 때의 변화는 상당합니다.

기본 번들 이어폰흐물 딱딱 느낌이라면

아즈라 이어 팁은 느낌이었습니다

귓속에 넣었을 때 번들 이어 팁은 욱여넣어! 느낌이라면

아즈라 이어 팁은 오 너 귀가 이렇게 생겼구나?

내가 맞출게라는 느낌을 받았습니다.

오랜만에 착용하다 보니 너무 꽉 끼어서 아프더라고요

그래서 어라? 하고

다시 기본 이어 팁으로 돌아갔는데

역체감이 어마 무시했습니다.

바로 너무 아프더라고요

다시 실험해 보기 위해 적당히 압박을 가하여 집어넣었고

세상 편안하고 쨍쨍한 음질을 느끼며

다시 한번 감탄했습니다.


이어 팁 추천 & 사이즈

아즈라 이어 팁은 크게 3가지가 있습니다.

라이트 버전 & 크리스털 & 셀라스택

저는 크리스털 버전을 샀다가

셀라스택으로 변경하였습니다.

기본 라이트 버전은 사용해 본 적이 없지만

크리스털을 사용하다가 셀라스텍으로 넘어온 사람으로서

차이점은 약간 쫀득 끈적합니다.

취향 차이가 올 것 같은데

좀 더 압박이 있고 찌끈한 느낌이 좋으시다면

셀라스택을 쓰시고 조금은 평범한 취향이시라면

크리스털을 쓰셔도 무방합니다.

 

자칫 맞지 않는 이어 팁을 사용하게 되면

외이도염에 걸리거나 귀에 염증을 유발하고

크기가 너무 크거나 작아서 예민한 귀를 자극하게 되면

청각에 심각한 문제가 생길 수도 있습니다.

하지만 아즈라 이어 팁은

기본적으로 아즈라 이어 팁은 SS ~ L 사이즈까지

디테일하게 6 크기로 출시가 되어 있습니다.

기본형부터 프로용 각 이어폰 회사별로 맞춤 설계되어 판매 중인데요

다양한 크기이다 보니 많은 사람들을 포용하고 있습니다.

에어팟 프로 2세대 기본 번들

L 사이즈 이어 팁을 사용하는 사람이라

동일한 크기인 아즈라 이어 팁 L 사이즈를 착용 중인데

아즈라의 경우 말랑 꾸덕꾸덕한 느낌으로

귀에 들어가 빈틈을 꽉 채워주다 보니

크기가 0.2 작은데도 불구하고

굉장히 꽉 막힌다 크다는 느낌을 받았습니다.

그래서 저는 오히려 사이즈를 줄여서

ML 사이즈로 다시 주문하여 사용 중입니다.

저는 이게 좀 더 편하게 잘 맞더라고요!

아래에는 전에 쓰던 소니 이어 팁 크기와

그전에 쓰던 버즈 이어 팁 크기도 첨부해 드리겠습니다.


단점

이어 팁이 잘 빠집니다.

이어 팁이 생각보다 분리가 잘됩니다.

저번에 택시에서 술에 취해 이어폰을 끼고 자다가

내리려는데 에어팟은 훅 빠지고 이어 팁은

귀에 들어가 있더라고요.

먼지가 잘 붙습니다.

후기에도 가장 많은 불편사항이

먼지가 너무 잘 붙습니다.

아무래도 남에게 보여주기 창피하게

이물질이나 먼지가 좀 붙다 보니

신경이 쓰이기는 합니다.

하지만 물로 가볍게 세척도 가능하고 털어내면 되니까

모든 완벽한 건 없으니까...!!

가격이 비쌉니다.

이어 팁이라고 생각하기에는 가격이 꽤나 비쌉니다.

쿠팡 최저가로 찾아봐도 2세트에 26.190원입니다.

한번 구매하면 바꿀 일이 크게 없으니 괜찮지만

첫 구매에는 고민이 많이 되는 저항선이 높은 가격대임은 확실합니다.

하지만 후기가 워낙 좋고 저도 추천하니까

한번 믿고 구매해 보세요!


10개월간 매일 사용하며

실제 사용 후기를 남겨드렸습니다.

구매 예정이시거나 알아보시던 분들에게

좋은 정보였으면 좋겠네요

쫀득 끈적한 느낌이 싫으시다면 크리스털로

좀 더 쫀쫀하고 끈적했으면 좋겠다 하시는 분들은

셀라스택으로 가시면 됩니다.

그냥 입문용 한번 얼마나 달라지나 써볼까?

하시는 분들은 기본으로 가보셔도 됩니다.

아래 아즈라 이어 팁 최저가 링크 남겨드릴게요!

오늘도 리뷰 봐주셔서 감사합니다!

https://jdkjdk91.blogspot.com/2023/01/blog-post.html

 

아즈라 이어팁

 

jdkjdk91.blogspot.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로,

이에 따른 일정액의 수수료를 제공받습니다."


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

에어팟 프로 2세대
(AirPods Pro 2nd Generation)

저의 삶의 질을 중요하게 지켜주는 것 들 중 하나가 

바로 노이즈 캔슬링 이어폰입니다.

출퇴근 길 그리고 업무에 집중할 때

잠깐 외부 세상과 단절되고 싶을 때,

굳이 노래를 듣지 않아도 노이즈 캔슬링을 켜놓고

홀로 있는 시간은 저를 힐링시키기 때문인데요

저는 오래전부터 

이어폰에 광적인 집착을 하던 사람이었습니다.

비츠를 시작으로 점점 하이엔드 이어폰에 도전하다가

결국 헤드폰에 빠져 오랜 기간 헤드폰에 빠져 살다가

다시 이어폰으로 돌아와 노이즈 캔슬링

무선 이어폰이 나오면 종류별로 계속 바꿔가며 

다른 매력을 즐기는 재미에 빠지게 되었습니다.

qcy부터 버즈 마샬 뱅 엔 올룹슨 보스를 지나 

소니 WF-1000XM4에서 크게 감명을 받은 뒤 

다시 버즈 프로로 그리고 에어팟 프로에서 

다시 젠 하이저 모멘텀 트루 와이어리스 3을

잘 사용하다가 다시 에어팟 프로 2세대로 돌아왔습니다.

(가장 최근 사용한 이어폰 5개)

원래대로라면 에어팟은 구매계획에 없었지만 

이어폰 한쪽을 잃어버리는 바람에 

에어팟으로 다시 돌아가자라고 결심을 했고 

이번에 새로 나온 에어팟 프로 2세대를 구매하여 2년간 사용하였습니다.

구매하기 전 여러 리뷰 유튜버들의 의견은 

기존 모델 대비 성능도 업그레이드되고 

디자인도 더 예뻐졌지만 전작에 비해 

비약적으로 좋아졌다는 느낌을 못 받았다는 의견이 

주를 이루었지만 직접 한번 경험해 보자 하고 

쿠팡으로 구매하여 하루 만에 받아보았습니다.

(솔직히 쿠팡이 제일 가격도 좋고 배송도 가장 빠른 거 같아요)

사용해 본 결과 여태까지 저의 변태적인 이어폰 집착의 

명예를 걸고 추천할 만하다 판단이 되었기에

지금부터 에어팟 프로 2세대에 대해 알아보고 

제가 2년간 사용하면서 느낀 솔직한 후기 적어보려 합니다.


외관 및 구성품

외관은 기존 에어팟 프로와 동일합니다.

옆에 홀이 하나 생겼습니다.

기본 구성품으로는 이어 팁 XS/S/M/L로 사이즈가 전보다 다양해졌습니다.

포트는 라이트닝 포트이며 사용설명서 그리고 스티커가 들어있습니다.


착용감

착용감은 개인별로 차이가 있지만 이번에 

이어 팁 사이즈가 좀 더 세세하게 나뉘면서 

귀에 딱 맞는 느낌이며 장시간 착용해도 불편함이 없었습니다.

오픈형보다 확실히 차음성이 좋고 노이즈 캔슬링을 하지 않더라도 

기본적인 외부 소음 차단도 아주 뛰어납니다.

대신 밀폐형 구조 특성상 조금 답답함을 느낄 수도 있는데요.

저는 이어 팁을 따로 구매하여 사용하기 때문에 

불편함이나 이물감은 없었습니다.

(이어팁에 대한 내용은 아래 글을 참고해 주세요!)

https://jdcyber.tistory.com/m/40

 

음질 향상 이어팁 추천 아즈라 이어팁 10개월 솔직 사용 후기 (장점, 단점, 비교, 음질, 에어팟 프

현재 사용 중인 아즈라 이어 팁 리뷰입니다. 이어 팁의 중요도는 모두 알고 계실 것 같아요 작년 외이도염으로 뉴스에도 떠들썩하게 논란이 되었었죠 매일 끼고 다니는 이어폰이 귀에 맞지 않거

jdcyber.tistory.com


페어링 & 연결 속도

저는 현재 아이폰 12프로, 맥북 M1 에어, 

아이패드 12.9 6세대를 사용하고 있습니다.

딱히 애플만 사야지 하고 앱등이가 되었다기보다

저는 오히려 여러 가지 브랜드의 기기를 사용해 보려고 노력하며

마음에 들면 혼종처럼 사용하던 사람이었습니다.

그런데 이번에 에어팟 프로 2세대를 구매해서 

사용해 보니 애플 기기들의 호환성은 

말하기 입 아플 정도로 대단하다고 느꼈습니다.

이 엄청난 속도의 호환성과 어우러짐.. 

각 기기들과 녹아드는 점은 애플이 왜 애플인가를 

다시 한번 느끼게 해 주었습니다.

페어링 속도가 정말 빠릅니다.

뚜껑을 열면 자동으로 인식되고 화면에 팝업창이 뜹니다.

최초 연동 후에는 케이스 덮개만 열어주면 자동으로 연결됩니다.

폰에서 노래를 듣다가 패드로 영상을 보게 되면 자동으로 변경되고,

바로 맥북에서 넷플릭스를 틀어 이동하면 바로 연결이 되는 미친 호환성입니다.


사운드

아쉬움은 있었지만 전체적으로 밸런스는 괜찮았고,

나름대로 우수한 소리를 들려줬습니다.

상세한 음질 리뷰는 아래 단점에서 이야기하도록 하겠습니다.

집중력이 필요한 경우 도움이 되는 "배경 사운드 기능"
균등한 소음, 바닷소리, 비, 시냇물 소리 등을
반복적으로 들려주어 외부 시끄러운 잡 소리를
상쇄시켜 집중하는 데 도움을 줍니다.
아래 실시간 듣기 기능을 켜게 되면 저 멀리서 말하는
사람의 소리도 잘 들리는 모드가 되어
상황에 따라 사용하시면 좋을 것으로 생각됩니다.

 

공간 음향이라는 기능도 있는데요
이 기능을 켜게 되면 고개를 돌렸을 때
기기 쪽에서 소리가 출력되며
영화 안에서 총소리가 뒤에서 들리는 등
놀라운 경험을 하실 수 있습니다.
에어팟 프로 2세대에서 핵심은 이 기능이 아닐까 싶네요


노이즈 캔슬링

노이즈 캔슬링의 경우 액티브였기에 

많은 기대를 하지 않았습니다.

전에 쓰던 젠하이저 제품과 크게 다르지 않거나 

조금 더 좋더라도 소니 정도라고 생각했는데

개인적인 느낌으로는 에어팟 프로 2세대 제품이 

가장 뛰어난 노이즈 캔슬링을 보여줬습니다.


 

단점

진입 장벽
애플의 제품은 안드로이드만 써오거나 다른 제품을
써오던 분들에게는 확실히 진입장벽이 높습니다.
부모님이 선뜻 아이폰으로 오지 못하는 이유도 그중 하나죠
갤럭시는 이렇게 이렇게 배치하고 이렇게 설정해서
편하게 써볼게라는 사용자의 입장을 충분히 들어주는 반면
애플은 아니야 이렇게 쓰면 더 편할걸? 하면서
그들의 세팅 값으로 유도하는 느낌이니까요
마치 우리가 아이클라우드를 처음 썼을 때
왜 다 연동되고 혼자 사라지고.. 라면서
골머리를 썩었던 몇 년 전과 같이 말이죠
하지만 완벽하게 적응한 유저들에게
이제는 너무 편한 시스템이 되어버린 건 사실입니다.

가격
다만 다른 브랜드 대비 비싼 가격대는 늘 아쉬웠습니다.
가성비라는 단어가 가장 안 어울리는 브랜드이며
이들의 액세서리 마케팅과 컬러 놀이
그리고 이제는 혁신이 잘 어울리지 않는 디자인까지
몇 년간 납득 가지 않는 가격대라는
사실은 변함이 없습니다.

음질
음질은 솔직히 말하면 우와~ 엄청나다!!
정도까지는 아닙니다.
저음역대가 강조되긴 했지만
고음역대 표현력이 다소 부족했습니다.
공간감도 그리 넓지 않았고
해상력도 평범한 수준이었습니다.
하지만 이 가격대에 이어폰들을 나열해 봤을 때
뒤처진다는 느낌은 없습니다.
다만 좀 더 좋은 선택지는 있겠지만요

노이즈 캔슬링
노이즈 캔슬링을 평소에 사용하지 않으시는 분들에게 착용을 권유해 봤는데
귀가 너무 먹먹하여 멀미가 난다고 하시더라고요
저는 강력한 노이즈 캔슬링을 좋아하는 편이라
괜찮았지만 사람에 따라 다르구나라고 느꼈습니다.
컨디션이 안 좋을 때는 저 또한 먹먹함이
느껴지는 정도입니다.
아직은 더 개선이 필요한 부분입니다.

포트
라이트닝입니다.. 선 넘었죠.
C 타입이 아닌 건 정말 너무합니다.
요즘에는 C타입 포트로 이루어진 에어팟이 출시되었죠.
해당 제품으로 무조건 구매하시고 아래 링크는 c타입으로 남겨드리겠습니다.


총평

마음에 쏙 들 정도로 완벽하진 않다.

하지만 이 가격대 다른 타사 제품과 견주어볼 때

부족한 점이 보이기보다 이 정도에 이런 기능 이런 호환성이라면 에어팟 프로 2세대 잘 나왔다!!

에어팟 프로를 사용하다가 젠하이저로 넘어갔다가 

다시 돌아와 역체감이 크게 느껴지고

오히려 한번 다른 곳으로 건너갔다 돌아와서 

변화된 점들이 크게 다가온 것 같습니다.

기존에 에어팟 프로를 사용하고 있는데 프로 2로 

넘어가려고 고민하시는 분들에게는 

절대 추천하고 싶지 않습니다.

다만 다른 브랜드 이어폰을 사용하셨었거나 

이제 에어팟 프로 입문해 보고 싶으신 분들은

구매하셔라라고 말씀드리고 싶네요.

2년간 실제로 매일매일 사용해 보고 

솔직히 말씀드립니다.

믿고 지르세요

아래 쿠팡 최저가 링크 남겨드리겠습니다.

https://jdkjdk91.blogspot.com/2024/03/blog-post.html

 

에어팟프로2세대

 

jdkjdk91.blogspot.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 
반응형
반응형

맥북 M1 Air

[Macbook M1 Air 13인치 램 16gb]

사이버 보안, 개발 공부를 시작한 이후

저의 첫 노트북이자 후기 글입니다.

저는 전자기기 유목민으로써 맥북, LG 그램 사용자이며

집에서는 조립식 컴퓨터로 인텔과 AMD 컴퓨터 

번갈아가며 사용하고 사무실에서는

맥 미니 M1을 사용했습니다.

(폰 역시 갤럭시와 아이폰을 넘나들다가 

블랙베리로 갔다가 다시 아이폰으로 온 

좋은 거면 가리지 않는 사람입니다)

이번에 본격적인 업무용 컴퓨터로

맥북 M1을 구매하게 되었고 3년 동안 사용하며

솔직한 심정과 느낌을 후기로 작성하려 합니다.

참고로 맥북 이전

가장 근래에 사용한 노트북은

LG전자 2019 그램 17ZD990-VX50K 

(SSD 256GB)입니다.


서론

제가 맥북 M1 에어를 선택한 이유는 여러 가지가 있지만,

가장 큰 이유는 '효율성과 성능의 완벽한 균형'을 찾고 싶었기 때문입니다.

사이버 보안과 개발 공부를 본격적으로 시작하면서, 저는 무엇보다도 강력한 성능을 지닌 노트북이 필요했습니다.

하지만 동시에 매일같이 오랜 시간 동안 사용할 기기이기에 휴대성과 배터리 수명 역시 중요한 고려 사항이었습니다.

이러한 저의 요구 사항을 모두 충족시킬 수 있는 제품을 찾던 중,

맥북 M1 에어가 가장 이상적인 선택으로 떠올랐습니다.


디자인

이 제품의 디자인을 한마디로 표현하자면

"유려하다, 아름답다, 깔끔하다"

맥북 특유의 마감과 에어의 장점인 

투박하게 네모나지 않은 유려한 곡선

그리고 가장 중요한 애플 감성

제가 가지고 있는 다른 애플 제품들이

모두 스페이스 그레이 색상이기 때문에 

이번에도 스페이스 그레이로 주문했습니다.

"아름답습니다"

Macbook M1 Air 구성품

구성품은 아래와 같습니다

노트북 본체와

C to C 케이블, C 타입 충전 포트,

설명서와 스티커 2개

스펙
제품 정보 / Specification
상품명
Apple 2020 MacBook Air M1 Chipset
모델 넘버
Z124000BL
프로세서
8 Core
RAM 메모리
16 GB
그래픽
7 Core
저장 장치
256Gb SSD
색상
Silver, Space gray, Gold

이번에 구입한 맥북 에어 M1 모델은

램 메모리를 16기가로 구입했습니다

기본 8기가로 출시되지만

맥북으로 가벼운 작업만 하는 것은 아니라서

램을 16기가 추가하여 사용 중입니다.

색상은 실버 스페이스 그레이 골드가 있고요

저는 스페이스 그레이를 골랐습니다.

이번에 애플은 M1을 통해 새로 발표한 혁신적인 M1 프로세서를 탑재하여

엄청난 기능을 선보이고 있습니다

M1 칩은 애플에서 직접 설계한 

Arm 아키텍처 기반 프로세서로서

스템 온 칩(SoC, System on Chip)으로 

하나의 칩 안에 CPU, GPU, Neural Engine, 

I/O 등 많은 요소를 통합하여 생산해낸 제품입니다.

이미 M1은 동일 가격대 대비 노트북들의 성능을

훨씬 뛰어넘는 모습을 보여줬으며,

시간이 지나면 금방 새로운 노트북이 출시되면서

뒤로 밀려나는 전자기기 시장에서 

2년이 지난 지금까지도

많은 유튜버 리뷰어들이 M1을 칭찬하면서

아직 대적할 만한 노트북은 없다면서

지금 구입해도 충분히 멋진 노트북이라고 

얘기하고 있습니다.

(인텔 칩이 들어간 300만 원짜리 맥북프로와

M1 칩이 들어간 100만 원짜리 

맥북 에어의 속도를 비교했을 때

M1 칩이 들어간 맥북에어가 영상, 

프로그래밍 작업 부분에서

월등히 빠른 속도를 냈다는 건 엄청난 충격이었죠)

여러 실 사용 테스트를 보면, M1 맥은 지금까지의 

하이엔드 인텔 맥을 앞서는 정도가 아니라 

압살하고 있습니다

그래서 M1 칩이 뭔데 하시는 분들에게

설명을 해드리면

M1은 CPU가 아닙니다.

메인보드 자체이며 CPU 자체이고 

그래픽카드 자체입니다.

칩이라고 이야기하는 것이 가장 적합하겠죠

그렇다면 왜 빠른가를 조금 비약적으로 설명해 본다면

너무 맛있는 음료수를 거대한 통에 담아

빠르게 마시게 하기 위해 얇고 짧은 빨대를 넣고

마신다고 상상해 보세요

음료가 빠르게 도착하긴 하겠지만 

너무 조금씩 들어오겠죠

우리는 이 빨대 크기를 더 짧게 

크게 만들 생각만 한 겁니다.

하지만 애플은 입을 데고 마시라고 하고 있죠

이것이 M1 칩과 거대한 CPU 그래픽카드의 차이입니다.


제품 추천 이유 (장점)

맥북 M1 Air의 가벼움 속에서 느껴지는 

파워풀한 퍼포먼스

이미 이곳에서 자랑하기에는 늦어도 한참 늦었습니다.

어디를 다니던 맥북 에어는

전혀 부담스러운 무게가 아닙니다.

오히려 저의 다른 제품인

아이패드 12.9 + 매직 키보드 제품 세트보다

에어 노트북이 가벼워서

가벼운 작업을 해야 함에도 패드보다

노트북을 들고 다니는 일이 많았습니다.

 가벼움에서 나오는 무서운 성능을 느껴본다면

경외심마저 들 정도입니다.


비교분석

최근 발표된 M3 맥북과 비교했을 때, 맥북 M1 에어는 여전히 가성비 측면에서 압도적인 선택입니다.

M3 칩셋이 더 높은 성능을 제공할 수 있지만,

M1 모델은 이미 일상적인 사용과 대부분의 전문적 작업에 충분히 뛰어난 성능을 보여주고 있습니다.

특히 가격 대비 성능에서 M1 에어는 여전히 시장에서 경쟁력을 유지하고 있습니다.

M3 모델은 성능 향상이 있지만 가격 역시 상승,

이에 대한 투자 대비 효과를 고려할 때 M1 에어는 예산에 더 민감한 사용자들에게 매력적인 옵션으로 남아 있습니다.

또한, M1 칩셋의 혁신적인 아키텍처는 이미 많은 사용자와 전문가로부터 입증받은 바 있으며,

시장에 출시된 지 2년이 지났음에도 불구하고 여전히 높은 성능을 유지하고 있습니다.


이번 맥북 에어 M1은 쿨링 팬이 없는 팬 리스 구조입니다

처음에는 팬이 없어서 걱정이 많았습니다.

가끔 무거운 동영상 편집 작업을 하기도 하고

일러스트나 포토샵으로 디자인 작업을 하기도 하는데

이때 항상 옆에 OTT로 영상을 틀어놓고 

작업하기 때문에

노트북은 항상 뜨끈뜨끈했었거든요

그런데 팬리스라니...

하지만 정말 놀라웠습니다.

팬이 없으니 당연히 아무런 소음이 일어나지 않아 

조용했고,

그램으로 동영상 편집 작업을 하고 렌더링을 할 때

과부하로 너무 뜨거워지면서

중간에 자주 다운이 되기도 했지만

이 노트북은 정말 강력했습니다.

발열도 거의 일어나지 않았으며

인코딩 속도 또한 그램에 비해

훨씬 빠른 모습을 보여줬습니다.

M1 에어의 열 관리는 역대 최고라고 해도 

과언이 아닙니다.


저는 직업 특성상 화상 미팅을 정말 많이 했습니다.

많이 할 때는 오전 9시에 미팅을 시작해서

연달아 5번의 미팅으로 오후 7시까지 진행할 정도로

화상 미팅을 정말 많이 하는데요

이전 그램을 사용할 때는 카메라나 마이크의 성능, 

배터리가 부족하다고 느껴져서 따로 제품을 구매하여 

사용했었습니다.

그런데 이번에 맥북 M1 에어로 바꾸고 나서

아주 시끄러운 카페를 제외하고서는

외근에서도 다른 제품의 필요성이 느껴지지 않을 정도로

거의 완벽한 퍼포먼스를 보여주었습니다.

개인적으로는 가장 만족감 높은 노트북이었습니다.


더욱 좋아진 색 표현과 텍스트의 선명도 그리고

조도 자동 조절은 개인적으로 너무 완벽했고

이러한 장점들은 자세히 얘기하는 것보다

이미 이전 버전부터 맥의 특장점이니

더 좋아졌다 정도로 줄이고 넘어가겠습니다.

공개된 지 2년이 지난 지금 2022년 12월까지도

이 제품을 구매하면 후회하실 일은 없으실 겁니다.

단점

하지만 단점도 당연히 존재합니다.

M1은 Apple silicon 기반 새로 개발된 칩셋이다 보니

지원하는 프로그램이 많이 적어

호환의 문제가 아주 컸습니다.

유명한 가상머신인 VMWARE라든지 여러 

타 프로그램들도 거의 다 호환에 문제가 있었습니다.

최근에 들어서야 호환이 힘들었던 프로그램에서

애플 실리콘에 호환이 완벽해진 버전을 내놓고 있어서

이제는 어려움 없이 거의 모든 프로그램을

사용하고 있지만,

11월까지만 해도 단지 호환성 문제 하나 때문에

노트북을 교체해야 하나 고민이 많았습니다.

(추천 게시글이 지금에서야 올라가는 이유도 

이 중 하나입니다.)

선더볼트 지원 C 타입 2개 / 3.5mm 헤드폰 1개

네, 왜 이렇게 한 건지 이해가 안 가는 포트 구성입니다.

원래 허브와 독을 가지고 있기 때문에 개인적으로는

어려움이 없었으나 분명 단점인 것은 확실합니다.


현재는 이러한 호환성 단점도 사라졌고

후속작인 M2 역시 기대보다 실망이 커진 상황에서

가격 대비 아직까지 최고의 선택 

맥북 Air M1인 것은 기정사실이라고 생각합니다.

맥북 입문을 앞두고 지금 당장 맥북을 사야 한다면

이 제품은 정말 잘 만들어진 랩탑임은 분명합니다

비교 대체재가 아직까지는 없어 보일 정도로

애플과 어울리지 않는 가성비라는 단어와 찰떡입니다.

강력한 맥북 M1 Air로 시작해 보시는 건 어떠실까요?

아래 링크 남겨둘 테니 필요하신 분들은 구경해 보시길 추천드려요!

https://jdkjdk91.blogspot.com/2022/12/m1.html

 

맥북 m1

 

jdkjdk91.blogspot.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로,

이에 따른 일정액의 수수료를 제공받습니다."


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

오늘은 MySQL에 대한 개념 글에 이어서

아직 mysql에 대해 모르시거나

이 글 전에 읽어보시지 못하셨다면

아래 링크를 한번 보고 오시길 추천드립니다.

(작성 중)

Mysql을 배우고 나서 아래 실습을 통해

간단한 명령어를 직접 연습해 보고

sql이 어떤 식으로 운용될 수 있는지

직접 알아보도록 하겠습니다.

주의

Sql 구문은 하나의 명령이 종료가 되면 

세미콜론(;)을 붙여주어야 합니다.

만약 세미콜론이 생략되면

2차 프롬프트(->)가 시작됩니다.

무조건 끝에 세미콜론을 붙이신다고 

생각해 주세요

MySQL 접속
bee@bee-box:~$ 
bee@bee-box:~$cd /var/www/bWAPP
bee@bee-box:/var/www/bWAPP$

root@bee-box:/var/www/bWAPP# mysql -u root -p

Enter password: bug
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.0.96-0ubuntu3 (Ubuntu)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| bWAPP              | 
| drupageddon        | 
| mysql              | 
+--------------------+
4 rows in set (0.00 sec)

cd /var/www/bWAPP를 이용하여

bWAPP 디렉터리로 이동합니다.

mysql -u root -p 명령어와 패스워드 

bug를 이용하여 Mysql 로컬 접속을 실시합니다.

show databases를 이용하여 

데이터베이스를 확인합니다.

가장 위에 있는 Information_schema 

Mysql에서 운영되는 데이터베이스, 

테이블, 칼럼의 모든 정보를 관리하는 DB입니다.

아래 보이는 bWAPP과 drupageddon 

bWAPP 시나리오에 사용하는 DB이며

맨 아래 mysql은 Mysql 운영과 관련된 

정보가 저장된 DB입니다.

 

DataBase 생성 및 삭제
mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> show databases; 
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| bWAPP              | 
| drupageddon        | 
| test               | 
| mysql              | 
+--------------------+
5 rows in set (0.00 sec)

mysql> drop database test;
Query OK, 0 rows affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| bWAPP              | 
| drupageddon        | 
| mysql              | 
+--------------------+
4 rows in set (0.00 sec)

create database ; 명령어를 이용하여 

데이트베이스를 생성하고

drop database ; 명령어 

데이터베이스를 삭제할 수 있습니다

(test 데이터베이스 생성)

테이블 생성 및 삭제
mysql> use test;
Database changed

mysql> show tables;
Empty set (0.00 sec)

mysql> create table linux (id int, login varchar(10), password varchar(10), username varchar(20), age int);
Query OK, 0 rows affected (0.01 sec)

mysql> show tables;
+------------------+
| Tables_in_test   |
+------------------+
| linux            | 
+------------------+
1 row in set (0.00 sec)

mysql> create table cisco (id int, login varchar(10), password varchar(10), username varchar(20), age int);
Query OK, 0 rows affected (0.00 sec)

mysql> create table security (id int, login varchar(10), password varchar(10), username varchar(20), age int);
Query OK, 0 rows affected (0.00 sec)

mysql> create table java (id int, login varchar(10), password varchar(10), username varchar(20), age int);
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+------------------+
| Tables_in_test   |
+------------------+
| cisco            | 
| java             | 
| linux            | 
| security         | 
+------------------+
4 rows in set (0.00 sec)

mysql> drop table java;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables; 
+------------------+
| Tables_in_test   |
+------------------+
| cisco            | 
| linux            | 
| security         | 
+------------------+
3 rows in set (0.00 sec)

use ; 명령어를 이용하여 test 데이터베이스를 사용하고

show tables ; 명령어 테이블을 확인합니다.

create table ; 명령어 리눅스 테이블을 생성하고 

cisco, security, java 테이블을 리눅스와 

동일하게 추가로 생성합니다.

(java 테이블은 삭제)

칼럼 속성 확인 & 데이터 값 입력
mysql> desc cisco;
+----------+-------------+------+-----+---------+-------+
| Field    |     Type    | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
|    id    |   int(11)   |  YES |     |   NULL  |       |
|   login  | varchar(10) |  YES |     |   NULL  |       |
| password | varchar(10) |  YES |     |   NULL  |       |
| username | varchar(20) |  YES |     |   NULL  |       |
|   age    |   int(11)   |  YES |     |   NULL  |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.021 sec)

mysql> desc linux;
+----------+-------------+------+-----+---------+-------+
|   Fiel d |     Type    | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
|    id    |   int(11)   |  YES |     |   NULL  |       |
|   login  | varchar(10) |  YES |     |   NULL  |       |
| password | varchar(10) |  YES |     |   NULL  |       |
| username | varchar(20) |  YES |     |   NULL  |       |
|    age   |   int(11)   |  YES |     |   NULL  |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.001 sec)

mysql> desc security;
+----------+-------------+------+-----+---------+-------+
|  Field   |     Type    | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
|    id    |   int(11)   |  YES |     |   NULL  |       |
|   login  | varchar(10) |  YES |     |   NULL  |       |
| password | varchar(10) |  YES |     |   NULL  |       |
| username | varchar(20) |  YES |     |   NULL  |       |
|    age   |   int(11)   |  YES |     |   NULL  |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.001 sec)

desc; 명령어를 이용하여 속성을 확인해 보고,

mysql> select * from cisco;
Empty set (0.000 sec)

mysql> insert into cisco values(1, 'cisco1', 'cisco1111', 'test', 23);
Query OK, 1 row affected (0.001 sec)

mysql> insert into cisco values(2, 'cisco2', 'cisco2222', 'test', 26);
Query OK, 1 row affected (0.001 sec)

mysql> insert into cisco (login, id, password, age, username) values('cisco3', 3, 'cisco3333', 29, 'test'); 
Query OK, 1 row affected (0.001 sec)

mysql> select * from cisco;
+------+--------+-----------+----------+------+
| id   | login  | password  | username |  age |
+------+--------+-----------+----------+------+
| 1    | cisco1 | cisco1111 |   test   |  23  |
| 2    | cisco2 | cisco2222 |   test   |  26  |
| 3    | cisco3 | cisco3333 |   test   |  29  |
+------+--------+-----------+----------+------+
3 rows in set (0.000 sec)

mysql> \! clear

mysql> insert into linux values(1, 'linux1', 'linux1111', 'test', 33); Query OK, 1 row affected (0.001 sec)

mysql> insert into linux values(2, 'linux2', 'linux2222', 'test1', 36);
Query OK, 1 row affected (0.001 sec)

mysql> insert into linux values(3, 'linux3', 'linux3333', 'test2', 39);
Query OK, 1 row affected (0.001 sec)

mysql> select * from linux;
+------+--------+-----------+--------------+------+
|  id  |  login |  password |   username   |  age |
+------+--------+-----------+--------------+------+
|   1  | linux1 | linux1111 |     test     |  33  |
|   2  | linux2 | linux2222 |     test1    |  36  |
|   3  | linux3 | linux3333 |     test2    |  39  |
+------+--------+-----------+--------------+------+
3 rows in set (0.000 sec)

mysql> insert into security values(1, 'security1', 'security11', 'test', 43); Query OK, 1 row affected (0.001 sec)

mysql> insert into security values(2, 'security2', 'security22', 'test1', 46);
Query OK, 1 row affected (0.001 sec)

mysql> insert into security values(3, 'security3', 'security33', 'test2', 49);
Query OK, 1 row affected (0.001 sec)

mysql> select * from security;
+------+-----------+------------+---------------+------+
|  id  |   login   |  password  |    username   |  age |
+------+-----------+------------+---------------+------+
|   1  | security1 | security11 |      test     |  43  |
|   2  | security2 | security22 |      test1    |  46  |
|   3  | security3 | security33 |      test2    |  49  | 
+------+-----------+------------+---------------+------+
3 rows in set (0.000 sec)

각 칼럼에 데이터 값을 입력해 봅니다.

select * from ; 명령어로 칼럼을 선택하고

insert into ~ values ; 명령어 

원하는 정보를 입력하여 넣어줍니다.

데이터 값 수정 및 삭제
mysql> select * from cisco;
+------+--------+-----------+--------------+------+
|  id  |  login |  password |   username   |  age |
+------+--------+-----------+--------------+------+
|   1  | cisco1 | cisco1111 |     test     |  23  |
|   2  | cisco2 | cisco2222 |     test     |  26  |
|   3  | cisco3 | cisco3333 |     test     |  29  |
+------+--------+-----------+--------------+------+
3 rows in set (0.000 sec)

mysql> update cisco set username='test1' where login='cisco2';
Query OK, 1 row affected (0.022 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update cisco set username='test2' where id=3; 
Query OK, 1 row affected (0.003 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from cisco;
+------+--------+-----------+--------------+------+
|  id  |  login |  password |   username   |  age |
+------+--------+-----------+--------------+------+
|   1  | cisco1 | cisco1111 |     NULL     |  23  |
|   2  | cisco2 | cisco2222 |     test1    |  26  |
|   3  | cisco3 | cisco3333 |     test2    |  29  |
+------+--------+-----------+--------------+------+
3 rows in set (0.000 sec)

mysql> update cisco set username=default where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from cisco; 
+------+--------+-----------+--------------+------+
|  id  |  login |  password |   username   |  age |
+------+--------+-----------+--------------+------+
|   1  | cisco1 | cisco1111 |     test     |  23  | 
|   2  | cisco2 | cisco2222 |     test1    |  26  | 
|   3  | cisco3 | cisco3333 |     test2    |  29  | 
+------+--------+-----------+--------------+------+
3 rows in set (0.00 sec)

mysql> update cisco set username=default;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 3 Changed: 2 Warnings: 0

mysql> select * from cisco;
+------+--------+-----------+----------+------+
|  id  |  login |  password | username |  age |
+------+--------+-----------+----------+------+
|   1  | cisco1 | cisco1111 |   NULL   |  23  | 
|   2  | cisco2 | cisco2222 |   NULL   |  26  | 
|   3  | cisco3 | cisco3333 |   NULL   |  29  | 
+------+--------+-----------+----------+------+
3 rows in set (0.00 sec)

mysql> delete from cisco where id=3;
Query OK, 1 row affected (0.00 sec)

mysql> select * from cisco;
+------+--------+-----------+----------+------+
|  id  |  login |  password | username |  age |
+------+--------+-----------+----------+------+
|   1  | cisco1 | cisco1111 |   NULL   |  23  | 
|   2  | cisco2 | cisco2222 |   NULL   |  26  | 
+------+--------+-----------+----------+------+
2 rows in set (0.00 sec)

mysql> delete from cisco;
Query OK, 2 rows affected (0.00 sec)

mysql> select * from cisco;
Empty set (0.00 sec)

mysql> desc cisco;
+----------+-------------+------+-----+---------+-------+
|   Field  |     Type    | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
|    id    |   int(11)   |  YES |     |   NULL  |       | 
|   login  | varchar(10) |  YES |     |   NULL  |       | 
| password | varchar(10) |  YES |     |   NULL  |       | 
| username | varchar(20) |  YES |     |   NULL  |       | 
|    age   |   int(11)   |  YES |     |   NULL  |       | 
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

select * from ; 명령어로 컬럼을 선택하고

update ~ set username= ~ where login='~';

으로 username 값을 변경해 본다

update ~ set username=default where id=~; 과 update ~ set username=default 명령어로

username을 NULL로 변경해 본다

delete from ~ where id=~ 명령어

삭제를 시도해 본다

desc ~; 명령어 지금까지 작업한 내용을 확인해 본다.


다음 실습을 위해 Cisco 테이블에 데이터 값 재 입력
mysql> insert into cisco values(1, 'cisco1', 'cisco1111', 'test', 23);
Query OK, 1 row affected (0.001 sec)

mysql> insert into cisco values(2, 'cisco2', 'cisco2222', 'test1', 26);
Query OK, 1 row affected (0.001 sec)

mysql> insert into cisco values(3, 'cisco3', 'cisco3333', 'test2', 29); 
Query OK, 1 row affected (0.001 sec)

mysql> select * from cisco;
+------+--------+-----------+----------+------+
| id   | login  | password  | username |  age |
+------+--------+-----------+----------+------+
| 1    | cisco1 | cisco1111 |   test   |  23  |
| 2    | cisco2 | cisco2222 |   test1  |  26  |
| 3    | cisco3 | cisco3333 |   test2  |  29  |
+------+--------+-----------+----------+------+
3 rows in set (0.000 sec)

칼럼 속성 정보 변경
mysql> desc linux;
+----------+-------------+------+-----+---------+-------+
|   Field  |     Type    | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
|    id    |   int(11)   |  YES |     |   NULL  |       | 
|   login  | varchar(10) |  YES |     |   NULL  |       | 
| password | varchar(10) |  YES |     |   NULL  |       | 
| username | varchar(20) |  YES |     |   NULL  |       | 
|    age   |   int(11)   |  YES |     |   NULL  |       | 
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> alter table linux modify login varchar(20);
Query OK, 0 rows affected (0.002 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> alter table linux modify password varchar(40);
Query OK, 0 rows affected (0.001 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc linux;
+----------+-------------+------+-----+---------+-------+
|   Field  |     Type    | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
|    id    |   int(11)   |  YES |     |   NULL  |       |
|   login  | varchar(20) |  YES |     |   NULL  |       |
| password | varchar(40) |  YES |     |   NULL  |       |
| username | varchar(20) |  YES |     |   NULL  |       |
|    age   |   int(11)   |  YES |     |   NULL  |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

alter table ~ modify login ~; 명령어를 이용하여

로그인 속성을 변경해 봅니다.

alter table ~ modify password ~ 명령어

이용하여 패스워드 속성을 변경해 봅니다.

칼럼 추가 & 수정 & 삭제
mysql> alter table linux add email varchar(20) first;
Query OK, 0 rows affected (0.006 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc linux;
+----------+-------------+------+-----+---------+-------+
|   Field  |     Type    | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
|   email  | varchar(20) |  YES |     |   NULL  |       |
|    id    |   int(11)   |  YES |     |   NULL  |       |
|   login  | varchar(20) |  YES |     |   NULL  |       |
| password | varchar(40) |  YES |     |   NULL  |       |
| username | varchar(20) |  YES |     |   NULL  |       |
|    age   |   int(11)   |  YES |     |   NULL  |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.001 sec)

mysql> select * from linux;
+-------+------+--------+-----------+--------------+------+
| email |  id  |  login |  password |   username   |  age |
+-------+------+--------+-----------+--------------+------+
|  NULL |   1  | linux1 | linux1111 |     test     |  33  |
|  NULL |   2  | linux2 | linux2222 |     test1    |  36  |
|  NULL |   3  | linux3 | linux3333 |     test2    |  39  |
+-------+------+--------+-----------+--------------+------+
3 rows in set (0.000 sec)

mysql> alter table linux modify email varchar(20) after username; Query OK, 0 rows affected (0.009 sec)
Records: 0 Duplicates: 0 Warnings: 0

mysql> desc linux; 
+----------+-------------+------+-----+---------+-------+
|   Field  |     Type    | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
|    id    |   int(11)   |  YES |     |   NULL  |       |
|   login  | varchar(20) |  YES |     |   NULL  |       |
| password | varchar(40) |  YES |     |   NULL  |       |
| username | varchar(20) |  YES |     |   NULL  |       |
|   email  | varchar(20) |  YES |     |   NULL  |       |
|    age   |   int(11)   |  YES |     |   NULL  |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.001 sec)

mysql> select * from linux; 
+------+--------+-----------+--------------+-------+------+
|  id  |  login |  password |   username   | email |  age |
+------+--------+-----------+--------------+-------+------+
|   1  | linux1 | linux1111 |     test     |  NULL |  33  |
|   2  | linux2 | linux2222 |     test1    |  NULL |  36  |
|   3  | linux3 | linux3333 |     test2    |  NULL |  39  |
+------+--------+-----------+--------------+-------+------+
3 rows in set (0.000 sec)

mysql> update linux set email='linux1@test.com' where login='linux1';
Query OK, 1 row affected (0.001 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update linux set email='linux2@test.com' where login='linux2';
Query OK, 1 row affected (0.001 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update linux set email='linux3@test.com' where login='linux3';
Query OK, 1 row affected (0.001 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from linux;
+------+--------+-----------+--------------+-------------------+------+
|  id  |  login |  password |   username   |       email       |  age |
+------+--------+-----------+--------------+-------------------+------+
|   1  | linux1 | linux1111 |     test     |  linux1@test.com  |  33  |
|   2  | linux2 | linux2222 |     test1    |  linux2@test.com  |  36  |
|   3  | linux3 | linux3333 |     test2    |  linux3@test.com  |  39  |
+------+--------+-----------+--------------+-------------------+------+
3 rows in set (0.000 sec)

mysql> alter table linux drop email;
Query OK, 0 rows affected (0.009 sec)
Records: 0 Duplicates: 0 Warnings: 0

alter table ~ add ~ varchar(20) first; 명령어

테이블 맨 앞부분에 칼럼 추가

잘 추가됐는지 desc ; 로 확인한 후

alter table ~ modify ~ after ~; 명령어로

리눅스 테이블에 이메일 칼럼 위치 수정

update ~ set ~='~' where login='~'; 명령어

이용하여 상세 데이터 수정


각 명령어 사용 직후

  • 데이터베이스 생성 및 삭제: CREATE DATABASE test;와 DROP DATABASE test; 명령어 직후에 각 명령어가 데이터베이스를 생성하고 삭제하는 기능을 수행한다는 설명을 추가합니다.
    • 예: "CREATE DATABASE test; 명령어는 'test'라는 이름의 새로운 데이터베이스를 생성합니다. 이때, 데이터베이스 이름은 고유해야 합니다. DROP DATABASE test; 명령어는 'test' 데이터베이스를 시스템에서 완전히 제거합니다."
  • 테이블 생성, 데이터 입력, 수정 및 삭제: 각 CREATE TABLE, INSERT INTO, UPDATE, DELETE 명령어 사용 직후에 명령어의 기능을 간략하게 설명합니다.
    • 예: "CREATE TABLE 명령어는 새로운 테이블을 생성합니다. INSERT INTO 명령어는 테이블에 새로운 행을 추가합니다. UPDATE 명령어는 테이블의 데이터를 수정하고, DELETE 명령어는 데이터를 삭제합니다."

오늘은 Mysql을 알아본 후
어떤 식으로 mysql을 사용하는 건지
간단한 실습을 통해서
Mysql에 접속해 보고,
Database를 생성하고 삭제해 보고,
테이블을 생성하고 삭제해 보고,
테이블 안에 컬럼 속성을 확인해 보고,
값을 입력하고 수정해 보고 삭제해 보고,
속성 정보를 변경해 보고,
칼럼을 추가하고 수정하고 삭제까지 해봤습니다.

아직까지 정말 많이 쓰이고 있는 mysql은 

어느 곳에 속하여 일을 하시던지

알고 계시면 분명 도움이 될만한 내용이라고 생각합니다.


  • 보안 관련 주의사항 및 안전한 사용법: mysql -u root -p 명령어를 사용하여 접속하는 방법을 설명하는 부분에 보안 주의사항을 추가합니다.
    • 예: "MySQL을 사용할 때는 보안을 항상 유념해야 합니다. 예제에서 사용한 'root' 계정과 'bug'라는 비밀번호는 테스트 목적으로만 사용해야 합니다. 실제 환경에서는 강력한 비밀번호를 설정하고, 필요한 최소한의 권한을 가진 사용자 계정을 생성하여 사용하는 것이 좋습니다."

실습 후 데이터베이스와 테이블 정리: MySQL 실습을 마친 후, 생성한 데이터베이스와 테이블을 어떻게 정리해야 하는지에 대한 방법을 설명합니다.

  • 예: "실습을 마친 후에는 사용한 데이터베이스와 테이블을 정리하는 것이 좋습니다. 이를 위해 DROP DATABASE 명령어와 DROP TABLE 명령어를 사용하여 더 이상 필요하지 않은 데이터베이스와 테이블을 삭제할 수 있습니다. 이 과정은 실습 환경을 깔끔하게 유지하고, 불필요한 데이터의 축적을 방지합니다

궁금하신 사항은 댓글에 남겨주세요
댓글에 남겨주신 내용
추후 정리해서 올려드리겠습니다
구독 신청하시면 업로드 시 알려드릴게요!
-
조금이라도 도움이 되셨다면
공감&댓글 부탁드리겠습니다
감사합니다!

 

반응형
반응형

오늘은 개발자라면 꼭 알고 있어야 할 깃허브 (Github)
너무 어려워서 접근하기 힘든 깃허브지만
개발자가 꿈이 이 사라면 사용할 수밖에 없을 텐데요
오늘은 깃허브에서 이력서를 만들어보겠습니다.

깃(git)과 깃허브 (Github)에 대한 설명과 차이점은
아래 글을 참고해 주세요

 

저장소

먼저 깃 허브 가입을 하신 후에 
저장소 (Repository)를 만들어 

이력서 관련 파일들을 저장하겠습니다.

먼저 깃허브에 로그인한 후 Repository

(이제 쉽게 레포라고 부르겠습니다)

에서 New를 클릭하여 새 저장소를 만들어줍니다.

"Repository name"에 원하는

레포 이름을 입력해 줍니다.

저는 resume라고 입력하도록 하겠습니다.

코딩할 때와 마찬가지로 띄어쓰기

즉 스페이스바를 하지 마시고

두 개 단어 이상으로 설정하시려면

gildong-resume처럼

하이픈으로 연결해 주시길 바랍니다.

다 작성하셨다면 Add a README flie 체크 박스를

클릭하신 후

Create repository 버튼을 클릭하여

이력에서 쓸 레포를 만들어줍니다.


소스 작성 환경 만들기
VSCODE 편집기

자동으로 만들어진 레포가 열리면 그 상태에서
키보드 마침표. 를 눌러 주세요.
github.dev라는 편집기가 나타납니다.
온라인에서 사용할 수 있는 Vscode 편집기입니다.
만약 작업에 능숙하시고 따로 사용하시는 편집기가
있으시다면 그걸로 사용하셔도 무방합니다.
이제 이곳에 원하는 html 소스를 작성하여 작업하면
자동으로 깃허브 레포로 파일이 업로드되고,
내용 수정 역시 즉시 반영됩니다.

 

소스 작성 환경 만들기2
Codeswing

Codeswing은 우리가 직접 작성한 소스가
어떻게 반영되는지 바로 확인이 가능하도록
출력해 주는 기능을 가지고 있습니다.
작업하면서 잘 노출되고 있는지 확인하기 위해
설치해 주도록 하겠습니다.

왼쪽 사이드바에서 확장 아이콘을 클릭한 후 codeswing을 검색하여 설치해 주세요.
그리고 바로 마크업 (Markup)에 들어가도록 하겠습니다.
마크업이란 웹 브라우저가 이해할 수 있도록
기호를 사용하여 구성하는 것을 말합니다.

Index.html / Codeswing

VS Code에서 명령 팔레트를 통해

Codeswing을 검색하고

CodeSwing: Initialize Workspace as Swing

선택합니다.

그리고 HTML 파일을 만들기 위해

Basic: HTML-only 선택합니다.

정상적으로 선택했다면 편집기 화면이 두 개로 나뉘면서

왼쪽에는 index.html이 나타나고,

오른쪽에는 CodeSwing 화면이 나타납니다.

index.html은 우리가 앞으로 소스를 작성할 화면이고,

오른쪽의 CodeSwing은 소스를 작성하면서

결과를 확인하기 위한 화면입니다.

<html lang = "en"> -> <html lang = "ko">

index.html 화면에서 느낌표! 를 입력한 후

Enter 키를 눌러주세요.

웹 문서의 가장 기본적인 소스 코드가

자동으로 만들어집니다.

그곳에서 "en" 부분을 "ko"로 수정해 주세요.

깃은 영문 페이지로 만들어졌지만

우리는 한글로 작성할 것입니다.

<title>Document</title> <- <title>원하는 제목</title>

보이는 소스에서 <title> 태그는 웹 브라우저 탭에

표시되는 이력서 제목입니다.

Document 부분을 원하는 제목으로 바꿔주세요

html 마크업

본격적으로 html 마크업을 시작하도록 하겠습니다.

아래 소스를 복사해서 index.html 문서의

<body> 태그와 </body> 태그 사이에 삽입해 주세요

<header id="header">
  <!-- 이력서 헤더 : 이름과 타이틀 작성 -->
  <h1>이름</h1>
  <hr>
  타이틀 (예: 학생 등)
  <hr>
</header>

<main>
  <article id="mainLeft">
    <section>
      <h2>CONTACT</h2>
      <!-- 연락처 정보 -->
    </section>
    <section>
      <h2>SKILLS</h2>
      <!-- 자신이 잘할 수 있는 기술 -->
     </section>
     <section>
      <h2>EDUCATION</h2>
      <!-- 학력 -->
    </section>            
  </article>
  <article id="mainRight">
    <section>
     <h2>ABOUT</h2>
     <!-- 자기 소개 -->
    </section>
    <section>
      <h2>WORK EXPERIENCE</h2>
      <!-- 경력 -->
    </section>
  </article>
</main>

위와 같이 Codeswing에 출력된다면

아주 잘 따라오고 계신 겁니다.

<header id="header">
<!-- 이름과 타이틀 작성 -->
  <h1>이름</h1>
  <hr>
    타이틀 (예: 학생 등)
  <hr>
</header>


<header id="header">
<!-- 이력서 헤더 : 이름과 타이틀 작성 -->
  <h1>홍길동</h1>
  <hr>
    도적
  <hr>
</header>

이제 필요한 내용들을 각 소스 코드 사이에 써넣어 주시면 됩니다.

위의 예시를 보고 본인의 이력서 내용을 채워 넣어주세요.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>!!!</title>
</head>
<link rel="stylesheet" href="style.css">
<body>
    <header id="header">
        <h1>!!!</h1>
        <hr>
       !!!
        <hr>
      </header>
      <main>
        <article id="mainLeft">
          <section>
            <h2>CONTACT</h2>
        <p>
            <i class="fa fa-envelope" aria-hidden="true"></i>
            <a href=!!!</a>
        </p>
        <p>
            <i class="fa fa-github" aria-hidden="true"></i>
            <a href=!!!</a>
          </p>      
        <p>
            <i class=!!!</i>
            <a href=!!!</a>
          </p>      
          </section>
          <section>
            <h2>SKILLS</h2>
            !!!
           </section>
           <section>
            <h2>EDUCATION</h2>
            !!!
          </section>            
        </article>
        <article id="mainRight">
          <section>
            <h2>!!!</h2>
            !!!
            <ul>
            !!!
            </ul>  
            !!!
           </section>
            <section>
                <h2>ABOUT</h2>
               </section>
        </article>
      </main>
</body>
</html>
스타일 적용하기

너무 정직한 이력서를 조금만 스타일 수정해 보겠습니다.

왼쪽 탐색기 화면에서 새 파일을 추가해 줍니다.

style.css를 검색하시면 오른쪽에 

창 하나가 추가됩니다.

이제 이곳에 소스를 적어 스타일을 만든 것을 index.html에 적용시키려면

HTML 문서에 연결해 주어야 합니다.

link 태그를 사용하여 연결시켜주도록 합시다.

<link rel="stylesheet" href="style.css">

위 코드를 index.html 문서 </head> 태그

바로 앞에 삽입해 주세요.

Google에서 제공하는 Noto Sans KR 체로

폰트를 바꿔보도록 하겠습니다.

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR&display=swap');

body {
    max-width: 960px;    /* 최대 너비 */
    margin: auto;         /* 마진 auto - 내용을 화면 가운데 맞추기 위해  */
    font-family: "Noto Sans KR", "Nanum Gothic";        /* 글꼴 - 웹 폰트 */
    font-size:14px;     /* 글자 크기 */
}

(이제부터 style 창에서 작업합니다)

위 코드를 삽입해 주세요

적용됐는지 보시려면 오른쪽 위 재생 버튼을 클릭하고

Codeswing 창을 보시면 적용되어 있는 모습을

확인할 수 있습니다.

우리가 만든 문서 제목을 지정하는

<h1> 태그와 <h2> 태그에 대한 스타일도 만들겠습니다

h1 {
    font-size: 3rem;    /* 글자 크기 */
    letter-spacing: 0.6rem;  /* 자간 */
    padding-top: 1rem;   /* 위쪽 패딩 */
    padding-bottom: 1rem;   /*  아래쪽 패딩 */
}

h2 {
    font-size: 1.5rem;
    padding-bottom: 1em;
}

너무 일자로 출력되어 보기가 힘들어 

2줄로 배치를 바꾸고 싶은데

이럴 경우 CSS 그리드를 사용하시면 됩니다.

작성한 각 파트의 너비를 조절하여 

양쪽으로 출력될 수 있게 해보겠습니다.

main {
    display: grid;    /* css grid 사용 */
    grid-template-columns: 40% 60%; /* 왼쪽 40%, 오른쪽 60% */
    margin-top: 3rem;
}

CSS 그리드를 이용하여 너비를 조절하고 

2줄로 출력되게 만들었습니다.

조금 답답해서 여백을 추가하면서 

가운뎃 줄을 하나 긋도록 하겠습니다.

header {
    text-align: center;
    margin: auto 2rem;
}

section {
    margin: auto 1rem 4rem 2rem;
}

p {
    margin: 0.2rem auto;
}

hr {
    border: none;
    background-color: lightgray;
    height: 1px;
}

h1, h2 {
    font-weight: 100; 
    margin-bottom: 0;
}

i {
    margin-right: 0.5rem;    /* SNS 아이콘 오른쪽 여백 */
}
#mainLeft {
    border-right: 1px solid lightgray;
}

이제 조금 잘 보이는 것 같습니다.

자 이제 깃에 커밋 (commit)을 해보도록 하겠습니다

깃에 커밋을 한다는 말은 

변경된 사항을 저장한다는 말입니다.

사이드바에서 Source Control 아이콘을 클릭한 후,

맨 위에 커밋 메시지를 입력하고

바로 위의 체크 버튼을 클릭합니다.

소스 컨트롤 아이콘에 나와있는 3이라는 파란 숫자는

수정된 사항이 3개가 있다고 표시해 주는 겁니다.

깃허브에서도 자동으로 저장되어

잘 업로드되어 있는 걸 확인해 보실 수 있습니다.

깃허브 레포 화면에서 오른쪽에 있는

Settings을 클릭하고 Pages를 선택합니다.

오른쪽 화면에서 Source 항목을 보면

아직 None이라고 되어 있을 것입니다.

None을 클릭한 후 main을 선택합니다.

위 설정의 뜻은

레포 main 브랜치에 있는 파일들을 

사용하겠다는 뜻입니다.

마지막으로 Save를 클릭합니다.

페이지 설정을 하고 페이지 주소가 뜨는데

즉시 웹 사이트가 나타나지는 않을 수 있습니다.

404 오류 메시지가 뜨더라도 걱정하지 말고,

5~10분 후에 다시 접속해 보시길 바랍니다.

잘 따라오셨다면 아래와 같이 이력서가 나오게 됩니다.

(개인정보는 가렸습니다)

완성되었습니다.

감사합니다.


궁금하신 사항은 댓글에 남겨주세요
댓글에 남겨주신 내용
추후 정리해서 올려드리겠습니다
구독 신청하시면 업로드 시 알려드릴게요!
-
조금이라도 도움이 되셨다면
공감&댓글 부탁드리겠습니다
감사합니다!

반응형
반응형

소프트웨어의 신뢰성을 높이는 SBOM 생성

 

CycloneDX란 무엇일까요?

 

소프트웨어 구성 요소를 한눈에 관리하는 새로운 표준

소프트웨어 개발 프로세스에서 빠질 수 없는 요소 중 하나는 구성 요소의 관리일 것입니다.

라이브러리, 프레임워크 등 다양한 구성 요소가 복잡하게 얽힌 프로젝트가 빠르게 진행되며, 이를 체계적으로 정리하고 추적하는 것이 절실한 필요로 대두되었습니다.

이에 따라 CycloneDX라는 소프트웨어 구성 요소 정보를 기록하고 공유하는 표준이 등장하게 되었습니다.

많은 조직과 개발자들에게 인기를 얻고 있는 CycloneDX는 간결하고 효율적인 구성 요소 관리 도구로 주목받고 있으며 감히 예상컨대 이미 많이 사용하고 있지만 앞으로는 더더욱 CycloneDX를 많은 보안 기업에서 사용할 것이라고 예상하고 있습니다.

특히 구성 요소 관리라 함은 보안에 있어 굉장히 중요합니다.

CycloneDX는 SBOM (Software Bill of Materials)을 만드는 데 사용되는데, 이를 통해 소프트웨어의 구성 요소와 해당 요소의 버전, 라이선스 정보 등을 일관된 표준 포맷으로 제공합니다.

소프트웨어 프로젝의 구성 요소와 종속성을 정확하게 추적하고, 여러 구성 요소와 라이브러리 간의 관계를 명확게 파악할 수 있습니다.

Bom metadata.. Components.. Services.. Dependencies.. Extensions..

 

SBOM에서 CyclonDX의 중요성

 

소프트웨어를 구축하는 데 필요한 구성 요소들은 복잡하게 얽혀 있습니다.

이런 복잡성을 관리하려면 우리가 사용하는 각 구성 요소에 대한 자세한 정보가 필요한데요,

CycloneDX는 이러한 복잡성을 관리하는 데 아주 큰 도움이 되는 도구입니다.

앞선 글에서 설명드린 SBOM의 중요성과 앞으로 필현적으로 생성하고 제출해야 되는

제도적 대비를 준비하는 가운데 우리가 사용하는 소프트웨어의 구성 요소 관리와 이에 대한 정보는 정말 중요합니다.

 

CycloneDX의 이해

기능과 사용법

 

CycloneDX의 기술적 세부사항을 추가하기 위해,

이 도구가 어떻게 SBOM(Software Bill of Materials)을 생성하는지에 대한 설명이 필요합니다.

CycloneDX는 주로 XML, JSON, 그리고 Protobuf 형식을 사용하여 SBOM을 생성합니다.

 

Json과 XML에 대해 아직 모르신다면 아래 쉽게 설명해놨으니 참고해주세요

https://jdcyber.tistory.com/42

 

JSON 이란? (효율적인 데이터 교환의 핵심)

JSON, 이 단어를 들어본 적이 있으신가요? 오늘은 웹 개발 및 데이터 전송에 있어 매우 중요하고 유용한 JSON 파일에 대해 알아보는 시간을 갖도록 하겠습니다. JSON은 데이터 교환을 가능하게 하는

jdcyber.tistory.com

https://jdcyber.tistory.com/41

 

XML이란? (데이터 통신의 보편적 언어)

안녕하세요! 오늘은 데이터 통신 및 교환에 있어 전문적이며 보편적인 언어인 XML에 대해 알아볼까 합니다. 쉽게 말해, XML은 데이터를 공유하고 전송하는 데 도움을 주는 언어로 생각하시면 됩니

jdcyber.tistory.com

 

이 SBOM은 소프트웨어 프로젝트의 구성 요소, 그들의 버전, 라이선스 정보, 그리고 보안 취약점 데이터를 포함합니다.

또한, CycloneDX는 이러한 구성 요소들 사이의 관계와 종속성을 명확하게 나타내어,

보안 위험을 식별하고 관리하는 데 중요한 역할을 합니다.

CycloneDX는 개발자가 이해하기 쉬운 형식으로 이 정보들을 제공하므로,

소프트웨어의 보안 및 컴플라이언스 상태를 더욱 효과적으로 관리할 수 있습니다.

 

CycloneDX는 소프트웨어의 각 구성 요소, 그 구성 요소의 버전,

그리고 해당 구성 요소의 라이선스 정보 등을 SBOM에 기록합니다.

SBOM 생성을 어떻게 해야하나 고민하는 많은 보안 업계 종사자들에게는

현재까지 유일무의하게 활용해야 하는 도구로써 자리매김하였습니다.

이 도구는 XML, JSON, 또는 Protobuf 형식으로 SBOM을 생성할 수 있으며,

이를 통해 효과적인 라이선스 관리와 생겨날 보안 취약점 추적이 가능합니다.

 

Json 문서를 참고하여 CycloneDX 이해하기

 

CycloneDX의 깊이 있는 이해를 위해 공식 문서, 특히 JSON 스키마 사양을 참조하는 것이 중요합니다.

CycloneDX v1.5 JSON 문서는 bomFormat, specVersion 등의 주요 요소가

CycloneDX BOM의 구조와 내용을 어떻게 정의하는지에 대한 상세한 내용을 제공합니다.

소프트웨어 및 하드웨어 구성 요소, 그들의 유형과 관계를 정의하는 방법,

메타데이터, 버전 관리, 라이선스 정보를 포함하는 방법 등을 상세히 설명합니다.

CycloneDX를 소프트웨어 개발 및 보안 과정에 구현하려는 이들에게 이 가이드는 필수적입니다.

자세한 정보는 CycloneDX v1.5 JSON 문서를 참조하시길 바랍니다.

 

CycloneDX v1.5 JSON Reference

CycloneDX v1.5 JSON Reference

cyclonedx.org

CycloneDX 사례
보안 취약점 관리와 라이선스 추적

 

CycloneDX를 통해 SBOM을 생성하면, 이를 이용하여 보안 취약점을 효과적으로 관리할 수 있습니다.

만약 특정 라이브러리에 보안 취약점이 발견되었다면 이 라이브러리를 사용하는 모든 애플리케이션을 쉽게 찾아낼 수 있으며,

CycloneDX를 이용하여 라이선스를 추적하면, 전체 프로젝트에 어떤 영향을 미치는지 쉽게 알아낼 수 있습니다.

결국 꼬리를 물며 들어가 위협 요소를 판별하고 취약점을 색인하는 데 있어서 보안에 필수적 요소라고 할 수 있겠죠

 

CycloneDX를 사용한 보안 취약점 관리와 라이선스 추적의 구체적인 예를 들어 설명해 보겠습니다.

예를 들어, 특정 오픈 소스 라이브러리에서 새로운 보안 취약점이 발견되었다고 가정해 봅시다.

CycloneDX를 사용하면, 이 라이브러리를 포함하는 모든 소프트웨어 프로젝트를 신속하게 식별할 수 있습니다.

이를 통해 해당 취약점에 노출된 모든 애플리케이션을 즉시 파악하고, 필요한 보안 조치를 취할 수 있습니다.

또한, 라이선스 관리 측면에서, CycloneDX는 모든 구성 요소의 라이선스 정보를 제공함으로써,

소프트웨어 프로젝트가 특정 라이선스 요건을 준수하고 있는지 쉽게 확인할 수 있게 해줍니다.

 

CycloneDX의 장점과 한계

 

CycloneDX의 가장 큰 장점은 그 간결성과 효율성입니다.

이 도구는 필요한 정보만을 제공하여, 사용자가 쉽게 이해하고 사용할 수 있게 합니다.

그러나, 아직 ISO 표준화를 받지 않았고 더 광범위한 정보를 제공하는 도구들에 비해

제공하는 정보의 범위가 상대적으로 제한적인 것은 사실입니다.

 

CycloneDX를 통한 효과적인 소프트웨어 관리

 

CycloneDX는 간결하면서도 효율적인 SBOM 생성 도구로, 보안 취약점 관리와 라이선스 추적에 매우 유용합니다.

이 도구를 이용하여, 우리는 소프트웨어의 복잡성을 효과적으로 관리하고, 더 안전하고 신뢰성 있는 소프트웨어를 개발할 수 있습니다.

앞으로 나아갈 길이 기대되는 CycloneDX..

공급사에 조금은 특화되어 보이는 위 도구를 통해 소프트웨어 보안 프로세스의 도약을 기대해 봅니다.

 

위에 언급된 SBOM에 대한 내용은 아래 자세히 기술해 놨으니 확인해봐 주세요

https://jdcyber.tistory.com/4


궁금하신 사항은 댓글에 남겨주세요
댓글에 남겨주신 내용은
추후 정리해서 올려드리겠습니다
구독 신청하시면 업로드 시 알려드릴게요!
-
조금이라도 도움이 되셨다면
공감&댓글 부탁드리겠습니다
감사합니다!

반응형
반응형

John the Ripper

 

1996년에 처음 공개된

존더리퍼(John the Ripper, JtR)

본래 유닉스 기반 시스템을 위해 개발된 비밀번호 크래킹 도구입니다.

사전 공격(Dictionary Attack)을 통해 비밀번호 강도를 테스트하고

암호화된(해시된) 비밀번호를 무차별 대입(brute-force) 공격하여 비밀번호를 크래킹 하기 위해 고안됐습니다.

비밀번호 크래킹 속도를 높이기 위한 다양한 모드 제공하고,

암호화된 비밀번호가 사용하는 해싱 알고리즘 자동 탐지,

손쉬운 도구 구동 및 구성 등이 포함되어 있어 초보자와 전문가 모두 연습이 가능한 비밀번호 크래킹 도구입니다.
하지만 JtR은 악의적인 해킹 목적보다는 보안 전문가들이 시스템의 약점을 찾고 강화하는 데 사용하는 교육 도구로 더 널리 인식됩니다.

보안 연습을 위한 실습 도구로서 그 가치가 높히 평가됩니다.


설치

 

아래 코드를 이용하여 깃에 접속해 존더리퍼를 손쉽게 설치할 수 있으며,

git clone "https://github.com/magnumripper/JohnTheRipper.git" && cd JohnTheRipper/src && ./configure && sudo make -s clean && sudo make -sj4

 

아래 코드를 이용하여 Zip 파일을 풀고 비밀번호 해제를 진행합니다.

cd JohnTheRipper/run ./zip2john [filename.zip] > hash.txt ./john hash.txt

 

아래 사이트에서는 직접 자신에게 맞는

OS 별 환경에 맞게 다운로드하고 설정할 수 있습니다.

https://www.openwall.com/john/

 

John the Ripper password cracker

John the Ripper password cracker John the Ripper is an Open Source password security auditing and password recovery tool available for many operating systems. John the Ripper jumbo supports hundreds of hash and cipher types, including for: user passwords o

www.openwall.com


일반적으로 비밀번호 크래커와 같은 도구는

3가지 방식으로 동작합니다.

 

사전 공격 (Dictionary Attack)

무차별 대입 (brute-force)

레인보우 테이블 (Rainbow tables)

 

전수 지수 공격 무작위 대입 공격이며

(모든 문자 및 숫자를 대입하는 방식)

사전 대입 공격은 관련성 있는 문자 및 숫자를 먼저 대입하는 방식입니다


사전 공격

사전 공격 사전에 입력된 수많은 단어와 구문,

이전에 유출된 데이터에서 가능성 있는 비밀번호 목록으로 로그인을 시도합니다.

이 도구는 올바른 비밀번호를 찾기 위해 애플리케이션 목록의 모든 단어를 입력합니다.
일반적으로 간단한 비밀번호에 효과적이지만,

복잡하고 무작위적인 비밀번호에는 덜 효과적입니다.

이 방법은 보안 수준이 낮은 시스템을 빠르게 크래킹 하는 데 유용하지만,

강력한 비밀번호에 대해서는 시간이 오래 걸릴 수 있습니다.


무차별 대입 공격

무차별 대입 공격은 사용자에게 아래와 같이 몇 가지 규칙을 구성하도록 요청합니다.

올바른 비밀번호의 최소 길이와 최대 길이,

구성될 가능성이 있는 글자 유형

(문자, 문자+숫자, 특수 문자 등)

위치 (알파벳 몇 개, 특수 문자 몇 개, 비밀번호 총 길이 등의 규칙)

이상적인 대입 구성을 찾기 위해서는 약간의 추측과 전문 지식이 필요합니다.

그리고 범위 안에서 기준에 따라 가능한 모든 비밀번호 조합을 추측하고,

올바른 비밀번호를 찾아내면 사용자에게 알려주도록 고안되어 있습니다.

이 방법은 매우 효과적인 방법이지만 속도가 매우 느립니다.

예를 들어, 대소문자와 함께 숫자와 특수 문자가 혼합된 9자리 비밀번호는

컴퓨터가 추측하는 데 9년 이상이 소요되기 때문에 실제로는 크래킹이 불가능합니다.

그래서 보안 전문가들이 항상 다양한 문자 유형의 조합으로 구성된 길고 복잡한 비밀번호를 선택하라고 제안하는 것이죠


레인보우 테이블(Rainbow tables)

 

업무에 필수적이고 보안 지향적인 애플리케이션은

비밀번호를 평문으로 저장하는 경우가 거의 없고 길이가 고정된 해시를 저장하고 있습니다.

때문에 유출된 데이터 등으로부터 얻은 해시화된 비밀번호 목록의 경우에 레인보우 테이블이 더욱 효율적일 수 있습니다.

우선 사전에 연산된 비밀번호 해시 목록을 기존의 데이터와 비교해 평문 형식의 올바른 비밀번호를 찾습니다.

해시된 데이터가 미리 계산되기 때문에 레인보우 테이블을 사용하는 것이

무차별 대입보다 속도 적으로 훨씬 빠릅니다.

레인보우 테이블은 비밀번호 해시가 솔팅(Salting) 되어 있고 솔트 값이 너무 커서

비밀번호의 전체적인 복잡성이 증가할 때는 효과적이지 못합니다.

그래서 해시된 사용자 비밀번호를 데이터베이스에 저장하는 것 외에

솔팅을 보안 방어책으로 사용하는 것입니다.

솔팅을 제대로 적용하면 비밀번호 데이터베이스가 유출되더라도

실제로 해커가 사용자 비밀번호를 본래의 평문 형식으로 되돌리는 것이 불가능하기 때문입니다.

솔팅과 해시 평문 등 어려운 단어로 알아듣지

못하시더라도 지금은 괜찮습니다.

추후 제가 설명 글을 작성해 드리도록 하겠습니다.

해당 방법은 보안을 위한 연습만 하시길 바라며

악의적인 해킹은 절대 삼가 주시기 바랍니다.


궁금하신 사항은 댓글에 남겨주세요
댓글에 남겨주신 내용은
추후 정리해서 올려드리겠습니다
이웃 신청하시면 업로드 시 알려드릴게요!
-
조금이라도 도움이 되셨다면
공감&댓글 부탁드리겠습니다
감사합니다!

반응형
반응형

ACL 접근 제어 목록 (Access Control List)

허가되지 않은 이용자가 라우터나 네트워크의 특정 자원에 접근하려고 하는 것을 차단하는 기능입니다.

첫 번째 실습에 이어 두 번째 시간입니다.


이 실습에서는 네트워크 보안의 중요한 측면인 접근 제어와 트래픽 관리를 실습합니다.

이 실습의 주된 목적은 네트워크 보안을 강화하고 특정 네트워크 트래픽을 제어하는 방법을 배우는 것입니다.
ACL을 사용하여 특정 소스에서 오는 또는 특정 목적지로 가는 트래픽을 제어하고,
네트워크 자원에 대한 무단 접근을 방지하는 방법을 배울 수 있습니다.

ACL에 대한 자세한 개념은

아래 글을 참고해 주세요!

https://jdcyber.tistory.com/17

 

ACL (Access Control List) 이란? ACL 구성 가이드: 네트워크 보안 강화를 위한 필수 지침 (쉬운 설명, 예

ACL (Access Control List) 정의 및 개념 ACL (Access Control List) 은 네트워크 보안의 핵심 구성 요소로, 네트워크 장비에서 데이터 패킷의 흐름을 제어하는 데 사용되는 일련의 지침입니다. 이 규칙들은 특

jdcyber.tistory.com

 

모든 패스워드는 'cisco'입니다.

R1, R2, R3에는 RIPv2 라우팅 업데이트 설정 완료

모든 구간 패킷 전송이 가능 상태

다음 조건에 맞게 ACL를 이용하여 R3에서 트래픽 필터링을 구현하세요

(패킷 트레이서 예제 파일은 본 글 하단에 첨부 해놨습니다.)


차단 규칙 먼저: 특정 트래픽을 차단하는 규칙은 해당 트래픽이 다른 규칙에 의해 우선적으로 허용되기 전에 평가되어야 합니다. 따라서, 트래픽을 차단하려는 규칙들은 ACL의 상단부에 배치해야 합니다.

'permit' 규칙의 위치: ACL의 마지막에는 대체로 'permit' 규칙을 두어, 이전의 모든 규칙에서 명시적으로 차단되지 않은 나머지 모든 트래픽을 허용합니다. 이는 실수로 중요한 트래픽을 차단하지 않도록 보장하는 안전장치 역할을 합니다.

정확한 순서의 중요성: 잘못된 순서로 규칙을 설정하면 의도하지 않은 트래픽 차단 또는 허용이 발생할 수 있습니다.
따라서, 각 규칙을 정확한 순서대로 설정하는 것이 네트워크 보안과 효율성을 유지하는 데 매우 중요합니다.

조건

R3는 외부에서 오는 트래픽 중 출발지 네트워크가 ‘13.13.10.0/24’인 트래픽이 내부 로컬 네트워크 ‘13.13.30.0/24’로 Telnet 접근을 차단하여라. 
(목적: 이 규칙은 민감한 내부 네트워크('13.13.30.0/24')로의 무단 Telnet 접근을 차단합니다. Telnet은 암호화되지 않은 통신을 사용하므로, 무단 접근자가 중요한 정보를 쉽게 가로챌 수 있습니다. 이 규칙은 특정 외부 네트워크('13.13.10.0/24')로부터의 잠재적인 위협을 방지하고 내부 네트워크의 보안을 강화합니다.)


R3에 위치한 HTTP/FTP 서버는 외부로부터 ICMP 공격을 받고 있는 상태이다. 외부로부터 수신하는 ICMP를 차단하여 공격을 방지하여라. 단, 서버는 외부로 Ping이 가능해야 한다.
(목적: 이 설정은 외부로부터 R3에 위치한 서버로의 ICMP 트래픽(특히 'echo' 요청, 즉 Ping)을 차단하여, 네트워크 서비스 거부(DoS) 공격과 같은 위협으로부터 서버를 보호합니다. 동시에, 서버가 네트워크 연결 상태를 확인하기 위해 외부로 Ping을 보낼 수 있도록 합니다. 이는 서버가 공격을 받지 않으면서도 정상적으로 네트워크 진단을 수행할 수 있도록 보장합니다.)


R3는 외부에서 오는 트래픽 중 출발지 네트워크가 ‘13.13.20.0/24’인 트래픽이 내부 로컬 웹서버 ‘13.13.30.3’에 접근하는 것을 차단하여라.
(목적: 이 규칙은 특정 출발지 네트워크('13.13.20.0/24')에서 내부 로컬 웹서버('13.13.30.3')로의 접근을 차단하여, 서버가 무단 접근이나 잠재적인 공격으로부터 보호되도록 합니다. 이는 웹 서버의 데이터 보안과 운영 안정성을 유지하는 데 중요합니다.)


R3는 위에 조건을 제외한 나머지 트래픽은 허용한다.
(목적: 이 규칙은 위에 명시된 조건을 제외한 모든 트래픽을 허용합니다. 이는 네트워크가 필요한 정상적인 트래픽을 차단하지 않으면서 보안을 유지할 수 있도록 합니다. 이는 네트워크의 연결성과 기능성을 보장하는 동시에 필수적인 보안 조치를 유지합니다.)

명령어

 

conf t
(R3 외부 트래픽 중 출발지 네트워크 ‘13.13.10.0/24’인 트래픽이 내부 로컬 네트워크 ‘13.13.30.0/24’로 Telnet 접근 차단)
access-list 110 deny tcp 13.13.10.0 0.0.0.255 13.13.30.0 0.0.0.255 eq23

(R3 HTTP/FTP 서버는 외부로부터 ICMP 공격을 받고 있는 상태. 외부로 수신하는 ICMP를 차단하여 공격을 방지 단, 서버는 외부로 Ping이 가능도록 설정) access-list 110 deny icmp any host 13.13.30.3 echo

(R3 외부에서 오는 트래픽 중 출발지 네트워크가 ‘13.13.20.0/24’인 트래픽이 내부 로컬 웹서버 ‘13.13.30.3’에 접근하는 것을 차단) access-list 110 deny tcp 13.13.20.0 0.0.0.255 host 13.13.30.3 eq 80

(위에 조건을 제외한 나머지 트래픽은 허용) access-list 110 permit ip any any
!
(위의 조건을 구성할때에는 최대한 간결하게 ACL를 구성하며, ACL을 R1 Serial 1/1 에 적용)
int s1/1
ip access-group 110 in
  1. Telnet 접근 차단 (출발지 네트워크 '13.13.10.0/24'에서 '13.13.30.0/24'로):
    설명: 이 단계에서는 '13.13.10.0/24' 네트워크에서 '13.13.30.0/24' 네트워크로의 Telnet 접근을 차단하는 ACL 규칙을 설정합니다. 이는 무단 접근을 막아 네트워크의 보안을 강화하는 데 중요합니다.
    명령어: access-list 110 deny tcp 13.13.10.0 0.0.0.255 13.13.30.0 0.0.0.255 eq 23

  2. ICMP 공격 방지 (HTTP/FTP 서버 '13.13.30.3'로의 ICMP 수신 차단):
    설명: 이 단계는 R3에 위치한 HTTP/FTP 서버를 ICMP 공격으로부터 보호합니다. 외부에서 서버로의 ICMP 메시지를 차단하되, 서버가 외부로 Ping을 할 수 있도록 설정합니다.
    명령어: access-list 110 deny icmp any host 13.13.30.3 echo

  3. 특정 트래픽 차단 (출발지 네트워크 '13.13.20.0/24'에서 웹서버 '13.13.30.3'로의 접근 차단):
    설명: 이 규칙은 '13.13.20.0/24' 네트워크에서 내부 로컬 웹서버 '13.13.30.3'으로의 접근을 차단합니다. 특정 네트워크 소스로부터의 웹 트래픽을 제한하여 서버 보안을 강화합니다.
    명령어: access-list 110 deny tcp 13.13.20.0 0.0.0.255 host 13.13.30.3 eq 80

  4. 나머지 트래픽 허용:
    설명: 이 규칙은 위에 나열된 조건을 제외한 모든 트래픽을 허용합니다. ACL은 위에서 아래로 규칙을 평가하므로, 맨 마지막에 'permit' 규칙을 두어 그 이외의 모든 트래픽을 통과시킵니다.
    명령어: access-list 110 permit ip any any
  •  

확인

show ip access-lists

패킷 트레이서 예제 파일

18_ACL 트래픽 필터링 예제-2.pkt
0.11MB

ACL이란?

ACL 트래픽 필터링 실습 #1

ACL 트래픽 필터링 실습 #2


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 

반응형
반응형

 

오늘은 해킹 기법 중 하나인 SQL Injection에 대해 알아보겠습니다.

시작하기에 앞서 아직 SQL이 무엇인지,

Query (쿼리)가 무엇인지 모르신다면

아래 글을 먼저 읽고 와주시길 바랍니다.

(작성 중)


SQL Injection?

 

SQL은 DB에서 사용하는 프로그래밍 언어이며

Injection 이란 무언가를 주입/주사할 때사용하는 단어로써

SQL Injection은 프로그래밍 언어를 주입하는 해킹 기법입니다.

해커는 보안상의 취약점을 이용하여 대상에게 임의의 SQL 문을 주입하여 실행되게 하고

DB를 공격하는 기법으로 데이터 베이스가 비정상적으로 동작하게 합니다.

인젝션 공격은 OWASP Top10 중 첫 번째 속해 있으며,

공격이 비교적 쉬운 편이고 공격에 성공할 경우

큰 피해를 입힐 수 있는 위험한 공격으로

보안 위협 1순위에 속하는 공격입니다.

SQL Injection 관련 취약점이 존재하면

웹서버의 정보가 모두 털릴 수 있을 정도로

아주 치명적입니다.

2017년 3월에 일어난 “여기어때” 의 대규모 개인정보 유출 사건도 SQL Injection으로피해가 발생하였었죠.

Owasp란?

OWASP는

‘Open Web Application Security Project’의 약자로 비영리 보안 프로젝트 재단을 통칭합니다.

이곳은 SW 보안 향상을 목적으로 운영되는 국제 웹 보안 표준 기구로서

애플리케이션에서 발생할 수 있는 취약점을 분석하고 연구하고 있는데요,

웹 애플리케이션 보안의 위협이 되는 취약점을 TOP 10으로 뽑아 만들고 대비할 수 있도록 알려줍니다.


SQL 인젝션 공격 기법

(대표적인 3가지)

Error Based SQL 인젝션

인증 우회(AB:Auth Bypass)

에러 기반 SQL Injection입니다.입니다.

에러를 이용한 공격 기법으로, 고의로 SQL 문에 에러를 발생시키는 기법으로

에러 메시지를 통해 쿼리문의 구성을 추측하고 DB의 테이블명, 칼럼명, 데이터 내용까지도 알아낼 수 있습니다.

보통 Users 테이블에 있는 모든 정보를 조회하게 됨으로 써

가장 먼저 만들어진 계정으로 로그인에 성공하게 됩니다.

보통은 관리자 계정을 맨 처음 만들기 때문에

관리자 계정에 로그인하여 막대한 2차 피해가 생기는 공격입니다.


Unipon Based SQL 인젝션

데이터 노출(DD:Data Disclosure)

Union 쿼리를 사용한 공격 기법으로 2가지

쿼리를 결합해 정보를 알아낼 때 사용하는 기법으로

공격에 성공하기 위해선 쿼리 두 개의 칼럼 수와 데이터 형이 같아야 한다는 조건이 있습니다.

데이터를 입력하여 참 거짓 값을 알아내고

쿼리 분석기로 칼럼 수를 파악한 후 계정을 열람할 수 있도록 SQL Injection 구문을 작성하여 공격하고,

테이블 열람 구문을 입력하여 모든 사용자의 테이블을 열람할 수도 있습니다.


Blind SQL 인젝션

(Boolean Based SQL, Time Based SQL)

에러 메시지가 발생하지 않는 경우 주로 사용하는 기법으로

특정 쿼리문으로 인한 결과가 참/거짓인 것 만 알 수 있을 때 사용합니다.

예를 들어 어딘가에 로그인을 성공하면 참, 실패하면 거짓 같은 결과를 알 수 있을 때

임의의 SQL 구문을 삽입하여 인가되지 않은 데이터를 열람하고 공격합니다

이러한 특징 때문에 이용하여 주로 데이터 노출을 위해 사용되며,

우편번호 찾기나, 게시판과 같이 데이터를 쉽게 확인할 수 있는 곳에서도 주로 사용됩니다.

요즘은 에러 메시지를 출력하지 않게 웹서버를 구축하고 있어서 웬만한 SQL 공격은 Blind sql 공격으로 진행됩니다


자세한 해킹 방법은 가상 환경을 구축하여

모의 해킹을 통해 알려드리도록 하겠습니다.

https://jdcyber.tistory.com/7

 

버츄얼박스 (VirtualBox)와 칼리 리눅스 (Kali Linux)를 이용한 모의해킹 실습 환경 구축 가이드

오늘은 모의해킹 실습 환경을 구축하는 방법에 대해 소개하려고 합니다. 이번 글에서는 VirtualBox와 칼리 리눅스(Kali Linux)를 사용합니다. 1. VirtualBox 설치 먼저, VirtualBox를 설치해야 합니다. 우리가

jdcyber.tistory.com

Sql 인젝션을 대비하고 보안하는 방법은

아래 글을 참고해 주세요!

(작성 중)

오늘은 SQL 구문을 이용한 해킹 기법인

SQL Injection에 대해 알아봤습니다.

해당 방법은 보안을 위한 연습만 하시길 바라며

악의적인 해킹은 절대 삼가 주시기 바랍니다.


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형

+ Recent posts