/images/profile_no_background.png

김영천 블로그

Ubuntu 22.04 설치 후 특정 도메인에 접근 못하는 문제 수정

증상

Ubuntu 22.04.1 설치 후 Github.com 사이트에 접근이 안되는 문제가 발생했다. 다른 사이트는 모두 접근이 가능하고, 심지어 와이파이로 인터넷 연결 시에는 Github.com 사이트도 접근이 가능하지만 유선 인터넷 연결 시에는 Github.com 도메인을 포함한 일부 도메인은 접근을 못하는 문제가 발생하고 있는 상태이다.

Emacs LSP 환경에서 Rust 자동완성 안되는 문제 수정

증상

Ubuntu + Emacs(lsp-mode) 조합으로 Rust 개발환경을 셋팅하는 도중 wasm 관련 코드가 자동완성이 안되는 문제가 발생했다.

Sample Code

Cargo.toml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[package]
name = "helloWasm"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[lib]
crate-type = ["cdylib"]

[dependencies]
js-sys = "0.3.60"
wasm-bindgen = "0.2.83"

[dependencies.web-sys]
version = "0.3.60"
features = [
  'CanvasRenderingContext2d',
  'Document',
  'Element',
  'HtmlCanvasElement',
  'Window',
]

lib.rs

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#[wasm_bindgen]
pub fn start() {
    let window: Window = web_sys::window().unwrap();
    let document: Document = window.document().unwrap();

    let canvas = document.get_element_by_id("canvas").unwrap();

    let canvas: web_sys::HtmlCanvasElement = canvas
        .dyn_into::<web_sys::HtmlCanvasElement>()
        .map_err(|_| ())
        .unwrap();

    let context = canvas
        .get_context("2d")
        .unwrap()
        .unwrap()
        .dyn_into::<web_sys::CanvasRenderingContext2d>()
        .unwrap();

    context.begin_path();
    // Draw the outer circle.
    context
        .arc(75.0, 75.0, 50.0, 0.0, f64::consts::PI * 2.0)
        .unwrap();

    // Draw the mouth.
    context.move_to(110.0, 75.0);
    context.arc(75.0, 75.0, 35.0, 0.0, f64::consts::PI).unwrap();

    // Draw the left eye.
    context.move_to(65.0, 65.0);
    context
        .arc(60.0, 65.0, 5.0, 0.0, f64::consts::PI * 2.0)
        .unwrap();

    // Draw the right eye.
    context.move_to(95.0, 65.0);
    context
        .arc(90.0, 65.0, 5.0, 0.0, f64::consts::PI * 2.0)
        .unwrap();

    context.stroke();
}

해결법

해당 프로젝트 내에서 cargo check 명령어를 실행하면 다음과 같은 에러가 발생한다.

한 줄 한 줄 짜면서 익히는 러스트 프로그래밍 책 리뷰

서론

우선 나는 웹 개발자다. 어렸을때 C언어를 겉핥기로 배우면서 프로그래밍의 기초를 배우고 이후 php를 통해 처음으로 웹 개발을 접하게 되었다. 그 후 자바와 스프링을 배우면서 웹 개발을 본격적으로 했지만 항상 JVM 위에서 돌아가고 보통의 exe 파일이 아닌 jar(또는 war) 파일이 빌드 결과물로 나오는게 내심 복잡하고 어렵게 느껴졌다. 그러던 즈음 구글에서 Go언어를 발표했다. 문법도 간결하고 성능도 준수하고 JVM같은 가상머신이 필요 없는 빌드 결과물이 상당히 매력적으로 느껴졌다. 하지만 당시나 지금이나 Go언어는 자바/스프링 진영보다 국내 시장 점유율이 낮았기 때문에 Go언어를 사용해 일을 할 기회는 많이 없었지만 개인적인 토이 프로젝트나 업무에서 가볍게 쓸 프로그램을 짤 때는 항상 우선순위로 염두해두는 언어가 되었다.

Android Cross-App Scripting 해결하기

문제

운영중인 안드로이드 앱을 플레이스토어에 업데이트 하다가 구글 측에서 교차 앱 스크립팅 취약정 문제가 있다는 메일을 받았습니다. 구글 측에서 제공한 가이드대로 조치를 취했는데도 여전히 문제가 있다는 리포트를 받아서 문제의 원인 해결방법을 기록하고자 합니다.